home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / comm / cnet / lords092c.lha / EL.PD < prev    next >
Text File  |  1980-01-24  |  191KB  |  5,331 lines

  1. /*              "THE EARTH LORDS"/UNREGISTERED (v 0.92)         */
  2. /*  ©1994 R.W.STEWART II & SLI (STEWART LOVECRAFT INDUSTRIES)  */
  3. /* WRITTEN/CODED/DIRECTED AND FONDLED BY WAYNE 'STU2' STEWART  */
  4. /*               ANOTHER FINE RPG FROM OPP & SLI               */
  5. /* HEADQUARTERS: THE DOCTOR'S OFFICE BBS (513)-256-3809 NODE 1 */
  6. /*      (513)-256-9312 NODE 2 / (513)-258-3841 NODE 3          */
  7. /*         ALL LINES ARE 14.4 SUPRAFAXMODEMS (RINGDOWN)        */
  8. /*               (513)-258-3815 NODE 4 - 2400 BAUD             */
  9.  
  10.  
  11. OPTIONS RESULTS
  12. SIGNAL ON ERROR
  13. SIGNAL ON SYNTAX
  14. p='###PANIC'
  15. MAXTIME=30            /* <-- CHANGE THIS TO MAXIMUM MINUTES PER TURN */
  16. MAXTURN=3             /* <-- CHANGE THIS TO MAXIMUM TURNS PER DAY */
  17. ERRORPATH='PFILES:LORDS/'
  18. UPATH='PFILES:LORDS/USERS/STATS/'
  19. BAKPATH='PFILES:LORDS/USERS/BACKPACKS/'
  20. FPATH='PFILES:LORDS/USERS/FORTS/'
  21. BPATH='PFILES:LORDS/USERS/SPELLBOOKS/'
  22. NPATH='PFILES:LORDS/USERS/NEWS/'
  23. SPATH='PFILES:LORDS/SCREENS/'
  24. MPATH='PFILES:LORDS/MENUS/'
  25. IPATH='PFILES:LORDS/ALLITEMS/ITEMS/'
  26. WPATH='PFILES:LORDS/ALLITEMS/WEAPONS/'
  27. APATH='PFILES:LORDS/ALLITEMS/ARMOR/'
  28. MOUNPATH='PFILES:LORDS/ALLITEMS/MOUNT/'
  29. EPATH='PFILES:LORDS/ENEMIES/'
  30. SKPATH='PFILES:LORDS/SPELLS/'
  31. MAPATH='PFILES:LORDS/MAPSTUFF/'
  32. DROPATH='PFILES:LORDS/MAPSTUFF/MAPDROP/'
  33. CODEPATH='PFILES:LORDS/MAPSTUFF/MAPCODE/'
  34. DPATH='PFILES:LORDS/SCRIPT/'
  35. MISPATH='PFILES:LORDS/SCRIPT/MISSIONS/'
  36. QUESPATH='PFILES:LORDS/SCRIPT/QUESTS/'
  37. NOTPATH='PFILES:LORDS/USERS/NOTEBOOKS/'
  38. PLACEPATH='PFILES:LORDS/MAPSTUFF/MAPPLACES/'
  39. CPATH='C:'
  40. BBB=1
  41. TT=TRANSMIT
  42. SFI=SENDFILE
  43. BRED=NO
  44. SX=SENDSTRING
  45. MAIN=YES
  46. ATTMPT=1
  47. DAM=' '
  48. DAX=' '
  49. DAY=' '
  50. POSSY=NO
  51. SPELLA=0
  52. SPELLB=0
  53. SPELLC=0
  54. MNTMV=0
  55. TUNNEL=NO
  56. WALK=NO
  57. RESTZ=0
  58. DOOF=OKAY
  59. CHANGEWHERE 'EARTH LORDS'
  60. GETUSER 23
  61. PORT=RESULT
  62. GETUSER 12
  63. CDATE=RESULT
  64. PARSE VAR CDATE DAY" "DAYN"-"MONTH"-"YEAR" "TIME
  65. NDAY=DAYN
  66. GETUSER 1200032
  67. XTIME=RESULT
  68. UTIME=XTIME/10
  69. TLIMIT=UTIME+MAXTIME
  70. VERSE='.92'
  71.  
  72. IF EXISTS(UPATH||'WON') THEN DO;CALL OPEN(1,UPATH||'WON','R');WIND=READLN(1);CALL CLOSE(1);TT 'F1CF'WIND 'CAHAS WON THE GAME. IT WILL BE RESET DURING NIGHTLY MAINTENANCE.N1CONGRATULATECF' WIND 'CAON HIS/HER VICTORY!W3';EXIT;END
  73.  
  74. GETUSER 28
  75. TERM=RESULT
  76. IF TERM<2 THEN DO;TT 'N1C9OOPS!W2YOU NEED IBM GRAPHIX SET AT 16 COLORS TO PLAYCE EARTH LORDS!W2';EXIT;END
  77.  
  78. GETUSER 24
  79. BAUD=RESULT
  80. IF BAUD<241 THEN DO;TT 'N1C9I DIDN''T DO THIS TO MESS YOU UPN1BUT AT YOUR BAUD RATE THIS GAME WILL REALLY DRAG...SORRYW2';END
  81.  
  82. TT 'F1N9C6' CENTER("THAT WHICH DOESN'T KILL US WILL ONLY MAKE US STRONGER...",77)
  83. TT ''
  84. TT 'CE'CENTER("                                   ...FRIEDRICH WILHELM NIETZSCHE",77) 'W3'
  85. SFI SPATH||'ELTITLE'
  86. TT 'CFVERSION:C9' VERSE
  87. TT 'N1G1'
  88.  
  89. BEGIN:
  90. GETUSER 1
  91. NAME=RESULT
  92. IF EXISTS(UPATH||NAME)=1 THEN SIGNAL LOADSAVED
  93. SFI DPATH||'WELCOME'
  94. QUERY 'N1CBWHAT SHALL YOU NAME YOUR CHARACTER?N1CE>>>CF '
  95. ST.1=RESULT
  96. IF ST.1=p THEN EXIT
  97. IF ST.1='' THEN SIGNAL BEGIN
  98. SX 'N1CBAND WHAT SEX SHALL THIS CHARACTER BE? C9[M/F]CA '
  99. GETCHAR
  100. ST.167=UPPER(RESULT);TT ST.167
  101. IF ST.167=p THEN SIGNAL EXIT
  102. IF ST.167='F' THEN SIGNAL GOON
  103. IF ST.167='M' THEN SIGNAL GOON
  104. SIGNAL BEGIN
  105.  
  106. GOON:
  107. EL='W'
  108. IF EXISTS(UPATH||'LORDS')=1 THEN EL='A'
  109. CALL OPEN(1,UPATH||'LORDS',EL)
  110. CALL WRITELN(1,ST.1)
  111. CALL WRITELN(1,NAME)
  112. CALL CLOSE(1)
  113. SIGNAL STARTROLL
  114.  
  115. STARTROLL:
  116. DO I=1 TO 40
  117.  ITEM.I=' '
  118.  AMOUNT.I=' '
  119.  WEIGHT.I=' '
  120.  VALUE.I=' '
  121. END
  122. DO I=2 TO 69
  123.  ST.I=0
  124. END
  125. ST.50=OKAY
  126. DO I=70 TO 106
  127.  ST.I=0
  128. END
  129. DO I=107 TO 129
  130.  ST.I=NONE
  131. END
  132. DO I=130 TO 150
  133.  ST.I=NO
  134. END
  135. DO I=151 TO 166
  136.  ST.I=0
  137. END
  138. ST.4=1
  139. ST.169=1
  140. DO I=60 TO 69
  141.  ST.I=X
  142. END
  143. ST.129=0
  144. ST.97=NO
  145. ST.98=NONE
  146. ST.128=DEFAULTPIC
  147. ST.168=1
  148. ST.127=ON
  149. ST.44=20
  150. ST.45=20
  151. ST.121=0
  152. NUM=7
  153. ST.157=' '
  154. ST.158=' '
  155. ST.163='W2'
  156. ST.130=' '
  157. ST.110=0
  158. ST.112=0
  159. ST.164=1
  160. ST.119=200
  161. ZIG=1
  162. R1=VRND(8,18)
  163. R2=VRND(8,18)
  164. R3=VRND(8,18)
  165. R4=VRND(8,18)
  166. R5=VRND(8,18)
  167. R6=VRND(8,18)
  168. R7=VRND(8,18)
  169. R8=VRND(8,18)
  170. R9=VRND(8,18)
  171. TT 'F1'
  172. SIGNAL STARTCHAR
  173.  
  174. STARTCHAR:
  175. SHOWN=NO
  176. TT 'F0N1CAOKAY,CF' ST.1 'CA. THE FOLLOWING RANDOM ROLLS OF 8-18 MUST BE'
  177. TT 'DIVIED UP AMONG YOUR STATISTICS. WE HAVE PROVIDED MORE RANDOM ROLLS'
  178. TT 'THAN NECESSARY SO YOU WILL HAVE BETTER ODDS OF GETTING GOOD ROLLS.'
  179. TT 'N1CB1. CA--> CF' LEFT(R1' ',3) 
  180. TT 'CB2. CA--> CF' LEFT(R2' ',3) '             C9YOUR STATS:'
  181. TT 'CB3. CA--> CF' LEFT(R3' ',3) '          CCMIGHT    :CF' ST.7
  182. TT 'CB4. CA--> CF' LEFT(R4' ',3) '          CCEDUCATION:CF' ST.12
  183. TT 'CB5. CA--> CF' LEFT(R5' ',3) '          CCAGILITY  :CF' ST.14
  184. TT 'CB6. CA--> CF' LEFT(R6' ',3) '          CCETHICS   :CF' ST.18
  185. TT 'CB7. CA--> CF' LEFT(R7' ',3) '          CCENDURANCE:CF' ST.21
  186. TT 'CB8. CA--> CF' LEFT(R8' ',3) '          CCCHARM    :CF' ST.24
  187. TT 'CB9. CA--> CF' LEFT(R9' ',3) 
  188. TT 'N1C9RCAEROLL'
  189. IF ZIG>6 THEN DO;TT 'N1CASTATISTICS FINISHED LET US MOVE ON TO RACE SELECTION.W2';SIGNAL RACE;END
  190. IF ZIG=1 THEN DO;STAT=MIGHT;NUM=7;END
  191. IF ZIG=2 THEN DO;STAT=EDUCATION;NUM=12;END
  192. IF ZIG=3 THEN DO;STAT=AGILITY;NUM=14;END
  193. IF ZIG=4 THEN DO;STAT=ETHICS;NUM=18;END
  194. IF ZIG=5 THEN DO;STAT=ENDURANCE;NUM=21;END
  195. IF ZIG=6 THEN DO;STAT=CHARM;NUM=24;END
  196. SX 'N1CAWHICHC9 #CA SHALL YOU USE FOR C9'STAT' CE(1-9)CA? '
  197. GETCHAR
  198. STR=UPPER(RESULT)
  199. IF STR=p THEN SIGNAL QUIT
  200. IF STR='R' THEN SIGNAL STARTROLL
  201. IF STR='1' & R1>00 THEN DO;ST.NUM=R1;R1=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  202. IF STR='2' & R2>00 THEN DO;ST.NUM=R2;R2=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  203. IF STR='3' & R3>00 THEN DO;ST.NUM=R3;R3=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  204. IF STR='4' & R4>00 THEN DO;ST.NUM=R4;R4=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  205. IF STR='5' & R5>00 THEN DO;ST.NUM=R5;R5=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  206. IF STR='6' & R6>00 THEN DO;ST.NUM=R6;R6=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  207. IF STR='7' & R7>00 THEN DO;ST.NUM=R7;R7=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  208. IF STR='8' & R8>00 THEN DO;ST.NUM=R8;R8=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  209. IF STR='9' & R9>00 THEN DO;ST.NUM=R9;R9=00;ZIG=ZIG+1;SIGNAL STARTCHAR;END
  210. TT 'N1CAIF YOU DO NOT SELECT A NUMBER BETWEEN C91CA &C9 9CA YOU WILL NOT'
  211. TT 'BE ABLE TO FINISH THIS SEGMENT. IF YOU DO NOT LIKE THE NUMBERS'
  212. TT 'YOU HAVE BEEN GIVEN THEN YOU MAY RESTART YOUR CHARACTER ONCE'
  213. TT 'YOU ARE COMPLETELY FINISHED. THIS WAS DONE TO DETOUR CONSTANT'
  214. TT 'CHARACTER REROLLING BY UNSATISFIED PLAYERS. YOU MAY ALSO ONLY'
  215. TT 'CHOOSE EACH NUMBER ONCE...G1F1'
  216. SIGNAL STARTCHAR
  217.  
  218. RACE:
  219. TT 'F1'
  220. SFI MPATH||'RACE'
  221. SX 'N1CBCHOOSE A RACE C9# CBFROM THE ABOVE LISTCA>>> '
  222. GETCHAR
  223. RAC=UPPER(RESULT)
  224. IF RAC='1' THEN DO;ST.2=DWARF;ST.7=ST.7+1;ST.21=ST.21+1;ST.14=ST.14-1;SIGNAL STATBONUS;END
  225. IF RAC='3' THEN DO;ST.2=WHITE ELF;ST.12=ST.12+2;ST.18=ST.18+1;ST.7=ST.7-2;SIGNAL STATBONUS;END
  226. IF RAC='4' THEN DO;ST.2=BLOND ELF;ST.24=ST.24+1;ST.14=ST.14+1;SIGNAL STATBONUS;END
  227. IF RAC='5' THEN DO;ST.2=OGRE;ST.7=ST.7+1;ST.24=ST.24-2;ST.21=ST.21+1;SIGNAL STATBONUS;END
  228. IF RAC='6' THEN DO;ST.2=HALFLING;ST.14=ST.14+2;ST.21=ST.21+1;ST.7=ST.7-2;SIGNAL STATBONUS;END
  229. IF RAC='7' THEN DO;ST.2=LITHE ELF;ST.14=ST.14+2;ST.12=ST.12+1;ST.7=ST.7-1;SIGNAL STATBONUS;END
  230. IF RAC='8' THEN DO;ST.2=HUMAN;ST.7=ST.7+1;ST.24=ST.24+1;SIGNAL STATBONUS;END
  231. IF RAC='2' THEN DO;ST.2=GNOME;ST.7=ST.7-1;ST.14=ST.14+1;ST.21=ST.21+2;SIGNAL STATBONUS;END
  232. TT 'N1C9YOU HAVE TO CHOOSE A RACE OR WE CANNOT GO ON!W2'
  233. SIGNAL RACE
  234.  
  235. CLASS:
  236. TT '       N1CF'ST.1 'CAIS BORN OF THECE' ST.2 'CARACE...W2'
  237. SIGNAL CLASS1
  238.  
  239. CLASS1:
  240. TT 'F1'
  241. SFI MPATH||'CLASS'
  242. TT 'N1CCRACE:CF' LEFT(ST.2' ',10) 'CCMIGHT:CF' ST.7 'CCEDUCATION:CF' ST.12 'CCAGILITY:CF' ST.14
  243. TT '                 CCETHICS:CF' ST.18 'CCENDURANCE:CF' ST.21 'CCCHARM:CF' ST.24
  244. SX 'N1CEPICK A C9#CE FOR THE CLASS YOU WISH TO PLAYC9>>> '
  245. GETCHAR
  246. CLA=UPPER(RESULT)
  247. IF CLA=p THEN SIGNAL QUIT
  248. IF CLA='1' THEN DO;ST.3=NINJA;SIGNAL NINJA;END
  249. IF CLA='2' THEN DO;ST.3=PRIEST;SIGNAL PRIEST;END
  250. IF CLA='3' THEN DO;ST.3=WARRIOR;SIGNAL WARRIOR;END
  251. IF CLA='4' THEN DO;ST.3=WIZARD;SIGNAL MAGIC;END
  252. IF CLA='5' THEN DO;ST.3=MONK;SIGNAL MONK;END
  253. IF CLA='6' THEN SIGNAL MULTICLASS
  254. IF CLA='7' THEN DO;ST.3=KNIGHT;SIGNAL KNIGHT1;END
  255. IF CLA='8' THEN DO;ST.3=GUIDE;SIGNAL GUIDE;END
  256. IF CLA='9' THEN DO;ST.3=ROGUE;SIGNAL ROGUE;END
  257. IF CLA='R' THEN SFI DPATH||'CLASS'
  258. SIGNAL CLASS1
  259.  
  260. KNIGHT1:
  261. IF ST.2~==HUMAN THEN SIGNAL BANNED
  262. IF ST.7<12 THEN SIGNAL STRTOOLOW
  263. IF ST.12<9 THEN SIGNAL INTTOOLOW
  264. IF ST.18<13 THEN SIGNAL WISTOOLOW
  265. IF ST.21<9 THEN SIGNAL ENDTOOLOW
  266. IF ST.24<17 THEN SIGNAL CHRTOOLOW
  267. SIGNAL WARRIOR
  268.  
  269. ENDTOOLOW:
  270. TT 'N2CAOOPS! YOUR ENDURANCE IS NOT HIGH ENOUGH TO BE THIS CLASSW2'
  271. SIGNAL CLASS1
  272.  
  273. STRTOOLOW:
  274. TT 'N2CAOOPS! YOUR MIGHT IS NOT HIGH ENOUGH TO BE THIS CLASSW2'
  275. SIGNAL CLASS1
  276.  
  277. DEXTOOLOW:
  278. TT 'N2CAOOPS! YOUR AGILITY IS NOT HIGH ENOUGH TO BE THIS CLASSW2'
  279. SIGNAL CLASS1
  280.  
  281. INTTOOLOW:
  282. TT 'N2CAOOPS! YOUR EDUCATION IS NOT HIGH ENOUGH TO BE THIS CLASSW2'
  283. SIGNAL CLASS1
  284.  
  285. WISTOOLOW:
  286. TT 'N2CAOOPS! YOUR ETHICS IS NOT HIGH ENOUGH TO BE THIS CLASSW2'
  287. SIGNAL CLASS1
  288.  
  289. CHRTOOLOW:
  290. TT 'N2CAOOPS! YOUR CHARM IS NOT HIGH ENOUGH TO BE THIS CLASSW2'
  291. SIGNAL CLASS1
  292.  
  293. MULTICLASS:
  294. IF ST.2=HUMAN THEN SIGNAL BANNED
  295. TT 'F1N3CAREMEMBER YOUR EXPERIENCE WILL BE DIVIDED BY THE AMOUNT'
  296. TT 'OF CLASSES YOUR CHARACTER WISHES TO BE. THIS MAY MAKE PROGRESS'
  297. TT 'SLOWER THAN OTHER PLAYERS. ALL OTHER STATS LIKE HIT POINTS AND'
  298. TT 'SAVING THROWS WILL BE EQUAL TO THE HIGHEST CLASS OR AVERAGED.'
  299. TT 'C9YOU STILL HAVE TO MEET MINIMUM REQUIREMENTS IN ALL CLASSES!'
  300. TT ''
  301. TT 'CB1.CA WARRIOR/ROGUE'
  302. TT 'CB2.CA WARRIOR/WIZARD'
  303. TT 'CB3.CA WARRIOR/PRIEST'
  304. TT 'CB4.CA WARRIOR/WIZARD/ROGUE'
  305. TT 'CB5.CA WIZARD/ROGUE'
  306. TT 'CB6.CA WIZARD/PRIEST'
  307. TT ''
  308. TT 'C9QCAUIT BACK TO LAST MENU'
  309. SX 'N1CFSELECT AN APPROPRIATE C9#CF OR LETTERC9>>> '
  310. GETCHAR
  311. MCS=UPPER(RESULT)
  312. IF MCS=p THEN SIGNAL QUIT
  313. IF MCS='Q' THEN SIGNAL CLASS1
  314. IF MCS='1' THEN DO;ST.3=WARRIORROGUE;ST.168=2;SIGNAL ROGUE;END
  315. IF MCS='2' THEN DO;ST.3=WARRIORWIZARD;ST.168=2;SIGNAL MAGIC;END
  316. IF MCS='4' THEN DO;ST.3=WARRIORWIZARDROGUE;ST.168=3;SIGNAL MAGIC;END
  317. IF MCS='3' THEN DO;ST.3=WARRIORPRIEST;ST.168=2;SIGNAL PRIEST;END
  318. IF MCS='5' THEN DO;ST.3=WIZARDROGUE;ST.168=2;SIGNAL MAGIC;END
  319. IF MCS='6' THEN DO;ST.3=WIZARDPRIEST;ST.168=2;SIGNAL MAGIC;END
  320. SIGNAL MULTICLASS
  321.  
  322. MAGIC:
  323. IF ST.2=WHITE ELF & ST.3=WIZARD THEN ST.128=WHITEWIZARD
  324. IF ST.2=HUMAN & ST.3=WIZARD THEN ST.128=HUMWIZARD
  325. IF ST.2=BLOND ELF & ST.3=WIZARD THEN ST.128=BLONDWIZARD
  326. IF ST.2=LITHE WIZARD & ST.3=WIZARD THEN ST.128=LITHEWIZARD
  327. IF ST.2=HALFLING THEN SIGNAL BANNED
  328. IF ST.2=DWARF THEN SIGNAL BANNED
  329. IF ST.2=GNOME THEN SIGNAL BANNED
  330. IF ST.2=OGRE THEN SIGNAL BANNED
  331. IF ST.12<15 THEN SIGNAL INTTOOLOW
  332. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  333. ST.97=YES
  334. ST.98=MAGIC
  335. ST.6=1800
  336. ST.99=ST.13+1
  337. ST.26=4+ST.22
  338. ST.27=4+ST.22
  339. ST.28=1
  340. ST.44=20
  341. ST.29=4
  342. ST.46=17
  343. ST.48=19
  344. ST.45=20
  345. IF ST.3=WIZARDPRIEST THEN SIGNAL PRIEST
  346. SIGNAL MAGICSKILLS
  347.  
  348. PRIEST:
  349. IF ST.2=DWARF & ST.3=PRIEST THEN ST.128=DWARFPRIEST
  350. IF ST.2=GNOME & ST.3=PRIEST THEN ST.128=HUMPRIEST
  351. IF ST.2=HUMAN & ST.3=PRIEST THEN ST.128=HUMPRIEST
  352. IF ST.2=LITHE ELF & ST.3=PRIEST THEN ST.128=BLONDPRIEST
  353. IF ST.2=WHITE ELF & ST.3=PRIEST THEN ST.128=WHITEPRIEST
  354. IF ST.2=BLOND ELF & ST.3=PRIEST THEN ST.128=BLONDPRIEST
  355. IF ST.2=OGRE & ST.3=PRIEST THEN ST.128=OGREPRIEST
  356. IF ST.2=HALFLING THEN SIGNAL BANNED
  357. IF ST.18<15 THEN SIGNAL WISTOOLOW
  358. ST.97=YES
  359. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  360. ST.98=RELIGIOUS
  361. ST.6=2000
  362. ST.81=ST.19+1
  363. ST.26=8+ST.22
  364. ST.27=8+ST.22
  365. ST.28=1
  366. ST.29=8
  367. ST.45=20
  368. SIGNAL PRIESTSKILLS
  369.  
  370. PRIESTSKILLS:
  371. TMP=ST.4
  372. IF ST.3=KNIGHT THEN TMP=ST.4-2
  373. IF TMP<1 & ST.3=KNIGHT THEN SIGNAL HITPOINTS
  374. IF ST.3=ANTI KNIGHT THEN TMP=ST.4-2
  375. IF TMP<1 & ST.3=ANTI KNIGHT THEN SIGNAL HITPOINTS
  376. IF TMP=1 THEN DO;ST.60=14;ST.61=16;ST.62=18;ST.63=20;END
  377. IF TMP=2 THEN DO;ST.60=12;ST.61=14;ST.62=16;ST.63=18;ST.64=20;END
  378. IF TMP=3 THEN DO;ST.60=10;ST.61=12;ST.62=14;ST.63=16;ST.64=18;ST.65=20;END
  379. IF TMP=4 THEN DO;ST.60=8;ST.61=10;ST.62=12;ST.63=14;ST.64=16;ST.65=18;ST.66=20;END
  380. IF TMP=5 THEN DO;ST.60=6;ST.61=8;ST.62=10;ST.63=12;ST.64=14;ST.65=16;ST.66=18;ST.67=20;END
  381. IF TMP=6 THEN DO;ST.60=4;ST.61=6;ST.62=8;ST.63=10;ST.64=12;ST.65=14;ST.66=16;ST.67=18;ST.68=20;END
  382. IF TMP=7 THEN DO;ST.60=2;ST.61=4;ST.62=6;ST.63=8;ST.64=10;ST.65=12;ST.66=14;ST.67=16;ST.68=18;ST.69=20;END
  383. IF TMP=8 THEN DO;ST.60=0;ST.61=2;ST.62=4;ST.63=6;ST.64=8;ST.65=10;ST.66=12;ST.67=14;ST.68=16;ST.69=18;END
  384. IF TMP=9 THEN DO;ST.61=0;ST.62=2;ST.63=4;ST.64=6;ST.65=8;ST.66=10;ST.67=12;ST.68=14;ST.69=16;END
  385. IF TMP=10 THEN DO;ST.62=0;ST.63=2;ST.64=4;ST.65=6;ST.66=8;ST.67=10;ST.68=12;ST.69=14;END
  386. IF TMP=11 THEN DO;ST.63=0;ST.64=2;ST.65=4;ST.66=6;ST.67=8;ST.68=10;ST.69=12;END
  387. IF TMP=12 THEN DO;ST.64=0;ST.65=2;ST.66=4;ST.67=6;ST.68=8;ST.69=10;END
  388. IF TMP>12 THEN DO;ST.65=0;ST.66=2;ST.67=4;ST.68=6;ST.69=8;END
  389. IF ST.3=KNIGHT | ST.3=ANTI KNIGHT THEN SIGNAL HITPOINTS
  390. SIGNAL MAGICSKILLS
  391.  
  392. MONK:
  393. IF ST.2~==HUMAN THEN SIGNAL BANNED
  394. IF ST.7<15 THEN SIGNAL STRTOOLOW
  395. IF ST.18<15 THEN SIGNAL WISTOOLOW
  396. IF ST.14<15 THEN SIGNAL DEXTOOLOW
  397. IF ST.21<11 THEN SIGNAL ENDTOOLOW
  398. ST.128=MONK
  399. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  400. ST.31=ROBE
  401. ST.6=2250
  402. ST.44=20
  403. ST.45=20
  404. ST.46=18
  405. ST.48=18
  406. ST.96=3
  407. ST.93=2
  408. ST.26=8+ST.22
  409. ST.27=8+ST.22
  410. ST.28=1
  411. ST.29=4
  412. ST.32=9
  413. SIGNAL MONKSKILLS
  414.  
  415. MONKSKILLS:
  416. IF ST.4=2 THEN DO;ST.32=8-ST.15;ST.169=2;ST.36=2;ST.37=5;ST.44=19;ST.46=17;ST.48=17;ST.96=ST.96+3;ST.93=ST.93+2;END
  417. IF ST.4=3 THEN DO;ST.32=7-ST.15;ST.169=2;ST.36=3;ST.37=6;ST.44=18;ST.46=17;ST.48=17;ST.96=ST.96+3;ST.93=ST.93+2;END
  418. IF ST.4=4 THEN DO;ST.32=6-ST.15;ST.169=3;ST.36=3;ST.37=6;ST.44=17;ST.46=15;ST.48=15;ST.96=ST.96+3;ST.93=ST.93+2;END
  419. IF ST.4=5 THEN DO;ST.32=5-ST.15;ST.169=3;ST.36=3;ST.37=6;ST.44=16;ST.46=15;ST.48=15;ST.96=ST.96+3;ST.93=ST.93+2;END
  420. IF ST.4=6 THEN DO;ST.32=4-ST.15;ST.169=4;ST.36=4;ST.37=7;ST.44=15;ST.46=13;ST.48=13;ST.96=ST.96+3;ST.93=ST.93+2;END
  421. IF ST.4=7 THEN DO;ST.32=3-ST.15;ST.169=4;ST.36=4;ST.37=7;ST.44=14;ST.46=13;ST.48=13;ST.96=ST.96+3;ST.93=ST.93+2;END
  422. IF ST.4=8 THEN DO;ST.32=2-ST.15;ST.169=5;ST.36=4;ST.37=7;ST.44=13;ST.46=11;ST.48=11;ST.96=ST.96+3;ST.93=ST.93+2;END
  423. IF ST.4=9 THEN DO;ST.32=1-ST.15;ST.169=5;ST.36=5;ST.37=8;ST.44=12;ST.46=11;ST.48=11;ST.96=ST.96+3;ST.93=ST.93+2;END
  424. IF ST.4=10 THEN DO;ST.32=0-ST.15;ST.169=6;ST.36=5;ST.37=8;ST.44=11;ST.46=9;ST.48=9;ST.96=ST.96+3;ST.93=ST.93+2;END
  425. IF ST.4=11 THEN DO;ST.32=-1-ST.15;ST.169=6;ST.36=5;ST.37=8;ST.44=10;ST.46=9;ST.48=9;ST.96=ST.96+3;ST.93=ST.93+2;END
  426. IF ST.4=12 THEN DO;ST.32=-2-ST.15;ST.169=7;ST.36=6;ST.37=9;ST.44=9;ST.46=7;ST.48=7;ST.96=ST.96+3;ST.93=ST.93+2;END
  427. IF ST.4=13 THEN DO;ST.32=-2-ST.15;ST.169=7;ST.36=6;ST.37=9;ST.44=8;ST.46=7;ST.48=7;ST.96=ST.96+3;ST.93=ST.93+2;END
  428. IF ST.4=14 THEN DO;ST.32=-2-ST.15;ST.169=8;ST.36=6;ST.37=9;ST.44=7;ST.46=5;ST.48=5;ST.96=ST.96+3;ST.93=ST.93+2;END
  429. IF ST.4>14 THEN DO;ST.32=-2-ST.15;ST.169=8;ST.36=7;ST.37=10;ST.44=6;ST.46=5;ST.48=5;ST.96=ST.96+3;ST.93=ST.93+2;END
  430. IF ST.4>1 THEN SIGNAL HITPOINTS
  431. SIGNAL FINALDO
  432.  
  433. WARRIOR:
  434. IF ST.2=BLOND ELF THEN ST.128=ELFWARRIOR
  435. IF ST.2=LITHE ELF THEN ST.128=ELFWARRIOR
  436. IF ST.2=WHITE ELF THEN ST.128=WHITEWARRIOR
  437. IF ST.2=HUMAN THEN ST.128=HUMWARRIOR
  438. IF ST.2=DWARF THEN ST.128=DDWARRIORE
  439. IF ST.2=OGRE THEN ST.128=OGREWARRIOR
  440. IF ST.2=HALFLING | ST.2=GNOME THEN ST.128=HALFDEMISTOUTWARRIOR
  441. ST.6=2000
  442. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  443. ST.44=20
  444. ST.45=20
  445. ST.46=20
  446. ST.48=19
  447. ST.26=10+ST.22
  448. ST.27=10+ST.22
  449. ST.28=1
  450. ST.95=2
  451. ST.93=2
  452. ST.96=1
  453. ST.29=10
  454. SIGNAL WARRIORSKILLS
  455.  
  456. GUIDE:
  457. IF ST.2=HALFLING THEN SIGNAL BANNED
  458. IF ST.2=LITHE ELF THEN SIGNAL BANNED
  459. IF ST.2=WHITE ELF THEN SIGNAL BANNED
  460. IF ST.2=DWARF THEN SIGNAL BANNED
  461. IF ST.2=GNOME THEN SIGNAL BANNED
  462. IF ST.2=OGRE THEN SIGNAL BANNED
  463. IF ST.7<13 THEN SIGNAL STRTOOLOW
  464. IF ST.12<13 THEN SIGNAL INTTOOLOW
  465. IF ST.18<14 THEN SIGNAL WISTOOLOW
  466. IF ST.21<14 THEN SIGNAL ENDTOOLOW
  467. ST.128=GUIDE
  468. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  469. ST.96=4
  470. ST.93=4
  471. ST.95=3
  472. ST.6=2000
  473. ST.44=20
  474. ST.45=20
  475. ST.46=20
  476. ST.48=19
  477. ST.26=16+ST.22
  478. ST.27=16+ST.22
  479. ST.28=1
  480. ST.29=8
  481. SIGNAL WARRIORSKILLS
  482.  
  483. ROGUE:
  484. IF ST.2=LITHE ELF & ST.3=ROGUE THEN ST.128=BLONDROGUE
  485. IF ST.2=HUMAN & ST.3=ROGUE THEN ST.128=BLONDROGUE
  486. IF ST.2=BLOND ELF & ST.3=ROGUE THEN ST.128=BLONDROGUE
  487. IF ST.2=HALFLING & ST.3=ROGUE THEN ST.128=HALFDEMISTOUTROGUE
  488. IF ST.2=GNOME & ST.3=ROGUE THEN ST.128=HALFDEMISTOUTROGUE
  489. IF ST.2=OGRE & ST.3=ROGUE THEN ST.128=OGRETHIEF
  490. IF ST.2=DWARF & ST.3=ROGUE THEN ST.128=DWARFROGUE
  491. ST.6=1500
  492. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  493. ST.44=20
  494. ST.52=10
  495. ST.54=15
  496. ST.56=15
  497. ST.57=2
  498. ST.59=10
  499. ST.45=20
  500. ST.165=10
  501. ST.46=16
  502. ST.48=15
  503. ST.26=6+ST.22
  504. ST.27=6+ST.22
  505. ST.28=1
  506. ST.29=6
  507. ST.94=4
  508. ST.93=2
  509. SIGNAL ROGUESKILLS
  510.  
  511. NINJA:
  512. IF ST.2=HALFLING THEN SIGNAL BANNED
  513. ST.128=NINJA
  514. IF SHOWN=NO THEN DO;TT 'N1CF  'ST.1 'CAIS ACE' ST.2 ''ST.3 'W2';SHOWN=YES;END
  515. ST.6=1800
  516. ST.52=10
  517. ST.54=15
  518. ST.56=15
  519. ST.57=2
  520. ST.94=4
  521. ST.59=10
  522. ST.44=20
  523. ST.45=20
  524. ST.46=16
  525. ST.48=15
  526. ST.26=6+ST.22
  527. ST.27=6+ST.22
  528. ST.28=1
  529. ST.29=6
  530. SIGNAL ROGUESKILLS 
  531.  
  532. ROGUESKILLS:
  533. IF ST.4>1 THEN DO;ST.52=ST.52+5;ST.54=ST.54+5;ST.56=ST.56+5;ST.59=ST.59+5;END
  534. IF ST.4=4 THEN DO;ST.46=14;ST.48=13;ST.44=18;ST.45=18;END
  535. IF ST.4=5 THEN ST.57=3
  536. IF ST.4=8 THEN DO;ST.46=12;ST.48=11;ST.44=16;ST.45=16;END
  537. IF ST.4=9 THEN ST.57=4
  538. IF ST.4=12 THEN DO;ST.46=10;ST.48=9;ST.44=14;ST.45=14;END
  539. IF ST.4=13 THEN ST.57=5
  540. IF ST.4=16 THEN DO;ST.46=8;ST.48=7;ST.44=12;ST.45=12;END
  541. IF ST.4=17 THEN ST.57=6
  542. IF ST.4=20 THEN DO;ST.46=6;ST.48=5;ST.44=10;ST.45=10;END
  543. IF ST.4=21 THEN ST.57=7
  544. IF ST.4>23 THEN DO;ST.46=4;ST.48=3;ST.44=8;ST.45=8;END
  545. IF ST.4=1 & ST.3=WARRIORWIZARDROGUE THEN SIGNAL WARRIOR
  546. IF ST.4=1 & ST.3=WARRIORWIZARDROGUE THEN SIGNAL WARRIOR
  547. IF ST.4>1 & ST.3=WARRIORWIZARDROGUE THEN SIGNAL WARRIORSKILLS
  548. IF ST.4>1 & ST.3=AMAZONIAN WITCH ROGUE THEN SIGNAL WARRIORSKILLS
  549. IF ST.4=1 & ST.3=WARRIORROGUE THEN SIGNAL WARRIOR
  550. IF ST.4>1 & ST.3=WARRIORROGUE THEN SIGNAL WARRIORSKILLS
  551. IF ST.4>1 & ST.3=AMAZONIAN ROGUE THEN SIGNAL WARRIORSKILLS
  552. IF ST.4>1 THEN SIGNAL HITPOINTS
  553. SIGNAL FINALDO
  554.  
  555. MAGICSKILLS:
  556. IF ST.4=1 & ST.3=WIZARDROGUE THEN DO;ST.26=5;ST.28=1;ST.29=5;ST.26=ST.26+ST.22;SIGNAL FINALDO;END
  557. IF ST.4=1 & ST.3=WIZARDPRIEST THEN DO;ST.98=BOTH;ST.26=6;ST.28=1;ST.29=6;ST.26=ST.26+ST.22;SIGNAL FINALDO;END
  558. IF ST.4=2 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+2;END
  559. IF ST.4=3 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+3;ST.100=ST.13+1;END
  560. IF ST.4=4 & ST.98~=RELIGIOUS THEN DO;ST.46=14;ST.48=13;ST.44=18;ST.45=18;ST.99=ST.13+4;ST.100=ST.13+2;END
  561. IF ST.4=5 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+5;ST.100=ST.13+3;ST.101=ST.13+1;END
  562. IF ST.4=6 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+5;ST.100=ST.13+4;ST.101=ST.13+2;END
  563. IF ST.4=7 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+5;ST.100=ST.13+5;ST.101=ST.13+3;ST.102=ST.13+1;END
  564. IF ST.4=8 & ST.98~=RELIGIOUS THEN DO;ST.46=12;ST.48=11;ST.44=16;ST.45=16;ST.99=ST.13+5;ST.100=ST.13+5;ST.101=ST.13+4;ST.102=ST.13+2;END
  565. IF ST.4=9 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+5;ST.100=ST.13+5;ST.101=ST.13+5;ST.102=ST.13+3;ST.103=ST.13+1;END
  566. IF ST.4=10 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+5;ST.100=ST.13+5;ST.101=ST.13+5;ST.102=ST.13+4;ST.103=ST.13+2;END
  567. IF ST.4=11 & ST.98~=RELIGIOUS THEN DO;ST.99=ST.13+5;ST.100=ST.13+5;ST.101=ST.13+5;ST.102=ST.13+5;ST.103=ST.13+3;ST.104=ST.13+1;END
  568. IF ST.4=12 & ST.98~=RELIGIOUS THEN DO;ST.46=10;ST.48=9;ST.44=14;ST.45=14;ST.103=ST.13+4;ST.104=ST.13+2;END
  569. IF ST.4=13 & ST.98~=RELIGIOUS THEN DO;ST.103=ST.13+5;ST.104=ST.13+3;ST.105=ST.13+1;END
  570. IF ST.4=14 & ST.98~=RELIGIOUS THEN DO;ST.104=ST.13+4;ST.105=ST.13+2;END
  571. IF ST.4=15 & ST.98~=RELIGIOUS THEN DO;ST.104=ST.13+5;ST.105=ST.13+3;ST.106=ST.13+1;END
  572. IF ST.4=16 & ST.98~=RELIGIOUS THEN DO;ST.46=8;ST.48=7;ST.44=12;ST.45=12;ST.105=ST.13+4;ST.106=ST.13+2;END
  573. IF ST.4=20 & ST.98~=RELIGIOUS THEN DO;ST.46=6;ST.48=5;ST.44=10;ST.45=10;END
  574. IF ST.4>23 & ST.98~=RELIGIOUS THEN DO;ST.46=4;ST.48=3;ST.44=8;ST.45=8;END
  575. IF ST.4=2 & ST.98~=MAGIC THEN DO;ST.81=ST.19+2;END
  576. IF ST.4=3 & ST.98~=MAGIC THEN DO;ST.81=ST.19+3;ST.82=ST.19+1;END
  577. IF ST.4=4 & ST.98~=MAGIC THEN DO;ST.46=14;ST.48=13;ST.44=18;ST.45=18;ST.81=ST.19+4;ST.82=ST.19+2;END
  578. IF ST.4=5 & ST.98~=MAGIC THEN DO;ST.81=ST.19+5;ST.82=ST.19+3;ST.83=ST.19+1;END
  579. IF ST.4=6 & ST.98~=MAGIC THEN DO;ST.81=ST.19+5;ST.82=ST.19+4;ST.83=ST.19+2;END
  580. IF ST.4=7 & ST.98~=MAGIC THEN DO;ST.81=ST.19+5;ST.82=ST.19+5;ST.83=ST.19+3;ST.84=ST.19+1;END
  581. IF ST.4=8 & ST.98~=MAGIC THEN DO;ST.46=12;ST.48=11;ST.44=16;ST.45=16;ST.81=ST.19+5;ST.82=ST.19+5;ST.83=ST.19+4;ST.84=ST.19+2;END
  582. IF ST.4=9 & ST.98~=MAGIC THEN DO;ST.81=ST.19+5;ST.82=ST.19+5;ST.83=ST.19+5;ST.84=ST.19+3;ST.85=ST.19+1;END
  583. IF ST.4=10 & ST.98~=MAGIC THEN DO;ST.81=ST.19+5;ST.82=ST.19+5;ST.83=ST.19+5;ST.84=ST.19+4;ST.85=ST.19+2;END
  584. IF ST.4=11 & ST.98~=MAGIC THEN DO;ST.81=ST.19+5;ST.82=ST.19+5;ST.83=ST.19+5;ST.84=ST.19+5;ST.85=ST.19+3;ST.86=ST.19+1;END
  585. IF ST.4=12 & ST.98~=MAGIC THEN DO;ST.46=10;ST.48=9;ST.44=14;ST.45=14;ST.85=ST.19+4;ST.86=ST.19+2;END
  586. IF ST.4=13 & ST.98~=MAGIC THEN DO;ST.85=ST.19+5;ST.86=ST.19+3;ST.87=ST.19+1;END
  587. IF ST.4=14 & ST.98~=MAGIC THEN DO;ST.86=ST.19+4;ST.87=ST.19+2;END
  588. IF ST.4=15 & ST.98~=MAGIC THEN DO;ST.86=ST.19+5;ST.87=ST.19+3;ST.88=ST.19+1;END
  589. IF ST.4=16 & ST.98~=MAGIC THEN DO;ST.46=8;ST.48=7;ST.44=12;ST.45=12;ST.87=ST.19+4;ST.88=ST.19+2;END
  590. IF ST.4=20 & ST.98~=MAGIC THEN DO;ST.46=6;ST.48=5;ST.44=10;ST.45=10;END
  591. IF ST.4>23 & ST.98~=MAGIC THEN DO;ST.46=4;ST.48=3;ST.44=8;ST.45=8;END
  592. IF ST.4<2 & ST.3=WIZARDROGUE THEN SIGNAL ROGUE
  593. IF ST.4>1 & ST.3=WIZARDROGUE THEN SIGNAL ROGUESKILLS
  594. IF ST.4>1 & ST.3=WITCH ROGUE THEN SIGNAL ROGUESKILLS
  595. IF ST.4<2 & ST.3=WARRIORWIZARDROGUE THEN SIGNAL ROGUE
  596. IF ST.4>1 & ST.3=WARRIORWIZARDROGUE THEN SIGNAL ROGUESKILLS
  597. IF ST.4>1 & ST.3=AMOZONIAN WITCH ROGUE THEN SIGNAL ROGUESKILLS
  598. IF ST.4<2 & ST.3=WARRIORWIZARD THEN SIGNAL WARRIOR
  599. IF ST.4>1 & ST.3=WARRIORWIZARD THEN SIGNAL WARRIORSKILLS
  600. IF ST.4>1 & ST.3=AMAZONIAN WITCH THEN SIGNAL WARRIORSKILLS
  601. IF ST.4<2 & ST.3=WARRIORPRIEST THEN SIGNAL WARRIOR
  602. IF ST.4>1 & ST.3=WARRIORPRIEST THEN SIGNAL WARRIORSKILLS
  603. IF ST.4>1 & ST.3=AMAZONIAN PRIESTESS THEN SIGNAL WARRIORSKILLS
  604. IF ST.3=PRIEST THEN SIGNAL PRIESTHIT
  605. IF ST.4>1 THEN SIGNAL HITPOINTS
  606. SIGNAL FINALDO
  607.  
  608. PRIESTHIT:
  609. IF ST.4=1 THEN DO;ST.44=20;ST.45=20;ST.46=17;ST.48=20;END
  610. IF ST.4=4 THEN DO;ST.44=18;ST.45=18;ST.46=15;ST.48=18;END
  611. IF ST.4=7 THEN DO;ST.44=16;ST.45=16;ST.46=13;ST.48=16;END
  612. IF ST.4=10 THEN DO;ST.44=14;ST.45=14;ST.46=11;ST.48=14;END
  613. IF ST.4=13 THEN DO;ST.44=12;ST.45=12;ST.46=9;ST.48=12;END
  614. IF ST.4=16 THEN DO;ST.44=10;ST.45=10;ST.46=7;ST.48=10;END
  615. IF ST.4>18 THEN DO;ST.44=8;ST.45=8;ST.46=5;ST.48=8;END
  616. SIGNAL HITPOINTS
  617.  
  618. WARRIORSKILLS:
  619. IF ST.4=1 & ST.3=WARRIORROGUE THEN DO;ST.26=8;ST.28=1;ST.29=8;ST.26=ST.26+ST.22;SIGNAL FINALDO;END
  620. IF ST.4=1 & ST.3=WARRIORWIZARDROGUE THEN DO;ST.26=6;ST.28=1;ST.29=6;ST.26=ST.26+ST.22;SIGNAL FINALDO;END
  621. IF ST.4=1 & ST.3=WARRIORPRIEST THEN DO;ST.26=8;ST.28=1;ST.29=8;ST.26=ST.26+ST.22;SIGNAL FINALDO;END
  622. IF ST.4=1 & ST.3=WARRIORWIZARD THEN DO;ST.26=7;ST.28=1;ST.29=7;ST.26=ST.26+ST.22;SIGNAL FINALDO;END
  623. IF ST.4=3 THEN DO;ST.44=18;ST.45=18;ST.46=18;ST.48=17;END
  624. IF ST.4=5 THEN DO;ST.44=16;ST.45=16;ST.46=16;ST.48=15;END
  625. IF ST.4=7 THEN DO;ST.44=14;ST.45=14;ST.46=14;ST.48=13;END
  626. IF ST.4=9 THEN DO;ST.44=12;ST.45=12;ST.46=12;ST.48=11;ST.169=2;END
  627. IF ST.4=11 THEN DO;ST.44=10;ST.45=10;ST.46=10;ST.48=9;END
  628. IF ST.4=13 THEN DO;ST.44=8;ST.45=8;ST.46=8;ST.48=7;END
  629. IF ST.4=15 THEN DO;ST.44=6;ST.45=6;ST.46=6;ST.48=5;END
  630. IF ST.4=17 THEN DO;ST.44=4;ST.45=4;ST.46=4;ST.48=3;ST.169=3;END
  631. IF ST.4=19 THEN DO;ST.44=2;ST.45=2;ST.46=2;ST.48=1;END
  632. IF ST.4>20 THEN DO;ST.44=0;ST.45=0;ST.46=0;ST.48=-1;END
  633. IF ST.3=KNIGHT | ST.3=ANTI KNIGHT THEN SIGNAL PRIESTSKILLS
  634. IF ST.4>1 THEN SIGNAL HITPOINTS
  635. SIGNAL FINALDO
  636.  
  637. HITPOINTS:
  638. ST.47=ST.46-ST.23
  639. ST.49=ST.48-ST.20
  640. IF ST.4=1 THEN SIGNAL FINALDO
  641. MXHP=VRND(ST.28,ST.29)+ST.22
  642. ST.26=ST.26+MXHP
  643. ST.27=ST.27+MXHP
  644. IF PLAY=YES THEN SIGNAL SKILLDO
  645. SIGNAL SHUFFLE
  646.  
  647. SHUFFLE:
  648. PLAY=NO
  649. IF BZZ=ARENA THEN SIGNAL ARENA
  650. IF BZZ=MAIN THEN SIGNAL MAIN
  651. IF UPMORE=YES THEN SIGNAL BATTLEOVER
  652. IF MAPPED=YES THEN DO;MAPPED=NO;BBB=1;MOVES=0;SIGNAL SPECIAL3;END
  653. IF ST.159>0 THEN DO;BBB=1;MOVES=0;TT 'F1';SIGNAL ICON1;END
  654. IF ST.128=DEFAULTPIC THEN SIGNAL SELECTAPIC
  655. SIGNAL MAIN
  656.  
  657. FINALDO:
  658. IF ST.167=F & ST.3=WARRIOR THEN ST.3=AMAZONIAN
  659. IF ST.167=F & ST.3=PRIEST THEN ST.3=PRIESTESS
  660. IF ST.167=F & ST.3=WIZARD THEN ST.3=WITCH
  661. IF ST.167=F & ST.3=WARRIORWIZARD THEN ST.3=AMAZONIANWITCH
  662. IF ST.167=F & ST.3=WARRIORWIZARDROGUE THEN ST.3=AMAZONIANWITCHROGUE
  663. IF ST.167=F & ST.3=WARRIORPRIEST THEN ST.3=AMAZONIAN PRIESTESS
  664. IF ST.167=F & ST.3=WARRIORROGUE THEN ST.3=AMAZONIANROGUE
  665. IF ST.167=F & ST.3=WIZARDPRIEST THEN ST.3=WITCHPRIESTESS
  666. IF ST.167=F & ST.3=WIZARDROGUE THEN ST.3=WITCHROGUE                  
  667. ST.47=ST.46-ST.23
  668. ST.49=ST.48-ST.20
  669. SFI DPATH||'ALIGN'
  670. IF ST.167=F THEN ST.128=DEFAULTPIC
  671. SIGNAL FINALDO1
  672.  
  673. FINALDO1:
  674. CALL OPEN(1,BAKPATH||NAME,'W')
  675. DO I=1 TO 10
  676.  CALL WRITELN(1,ITEM.I)
  677.  CALL WRITELN(1,AMOUNT.I)
  678.  CALL WRITELN(1,WEIGHT.I)
  679.  CALL WRITELN(1,VALUE.I)
  680. END
  681. CALL CLOSE(1)
  682. TT 'F1A'
  683. SFI MPATH||'ALIGN'
  684. SX 'N2CBCHOOSE A C9#CB FOR THE ALIGNMENT YOU DESIREC9>>> '
  685. GETCHAR
  686. ALG=UPPER(RESULT)
  687. IF ALG=p THEN SIGNAL QUIT
  688. IF ALG=9 & ST.3=KNIGHT THEN DO;ST.3=ANTI KNIGHT;ST.128=ANTIPAL;ST.70=CHAOTIC EVIL;SIGNAL CHGOD;END
  689. IF ALG>1 & ST.3=KNIGHT THEN DO;SIGNAL NOALG;END
  690. IF ALG=1 & ST.3=NINJA | ALG=1 & ST.3=ROGUE THEN SIGNAL NOALG
  691. IF ALG>3 & ST.3=GUIDE THEN SIGNAL NOALG
  692. IF ALG=2 & ST.3=MONK THEN SIGNAL NOALG
  693. IF ALG=3 & ST.3=MONK THEN SIGNAL NOALG
  694. IF ALG=5 & ST.3=MONK THEN SIGNAL NOALG
  695. IF ALG=6 & ST.3=MONK THEN SIGNAL NOALG
  696. IF ALG=8 & ST.3=MONK THEN SIGNAL NOALG
  697. IF ALG=9 & ST.3=MONK THEN SIGNAL NOALG
  698. IF ALG='1' THEN DO;ST.70=RIGHTFUL KIND;SIGNAL LAWGOD;END
  699. IF ALG='2' THEN DO;ST.70=IMPARTIAL KIND;SIGNAL NTGOD;END
  700. IF ALG='3' THEN DO;ST.70=LAWLESS KIND;SIGNAL CHGOD;END
  701. IF ALG='4' THEN DO;ST.70=RIGHTFUL IMPARTIAL;SIGNAL LAWGOD;END
  702. IF ALG='5' THEN DO;ST.70=IMPARTIAL;SIGNAL NTGOD;END
  703. IF ALG='6' THEN DO;ST.70=LAWLESS IMPARTIAL;SIGNAL CHGOD;END
  704. IF ALG='7' THEN DO;ST.70=RIGHTFUL IMMORAL;SIGNAL LAWGOD;END
  705. IF ALG='8' THEN DO;ST.70=IMPARTIAL IMMORAL;SIGNAL NTGOD;END
  706. IF ALG='9' THEN DO;ST.70=LAWLESS IMMORAL;SIGNAL CHGOD;END
  707. SIGNAL FINALDO1
  708.  
  709. NOALG:
  710. TT 'N1CAACF' ST.3 'CACANNOT BE THIS ALIGNMENTW2'
  711. SIGNAL FINALDO1
  712.  
  713. LAWGOD:
  714. IF ST.70=RIGHTFUL IMMORAL & ST.128=HUMWARRIOR THEN ST.128=HUMWARRIORE
  715. TT 'F1'
  716. SFI MPATH||'LAWGOD'
  717. SX 'N1CAWHAT GOD & RELIGION SHALL YOU CHOOSE? '
  718. GETCHAR
  719. LGD=UPPER(RESULT)
  720. IF LGD=p THEN SIGNAL QUIT
  721. IF LGD='1' THEN DO;ST.71=CHRISTIAN;ST.72=GOD;SIGNAL SKILLDO;END
  722. IF LGD='2' THEN DO;ST.71=SIATRIAN;ST.72=SIATRE;SIGNAL SKILLDO;END
  723. IF LGD='3' THEN DO;ST.71=BUNETIC;ST.72=BUNORN;SIGNAL SKILLDO;END
  724. IF LGD='4' THEN DO;ST.71=DELIMIAN;ST.72=FIS DELIMUA;SIGNAL SKILLDO;END
  725. IF LGD='5' THEN DO;ST.71=ALACADADA;ST.72=ALACIAN;SIGNAL SKILLDO;END
  726. IF LGD='6' THEN DO;ST.71=SRASDAN;ST.72=SRADA;SIGNAL SKILLDO;END
  727. SIGNAL LAWGOD
  728.  
  729. NTGOD:
  730. IF ST.70=IMPARTIAL IMMORAL & ST.128=HUMWARRIOR THEN ST.128=HUMWARRIORE
  731. TT 'F1'
  732. SFI MPATH||'NTGOD'
  733. SX 'N1CAWHAT GOD & RELIGION SHALL YOU CHOOSE? '
  734. GETCHAR
  735. LGD=UPPER(RESULT)
  736. IF LGD=p THEN SIGNAL QUIT
  737. IF LGD='1' THEN DO;ST.71=NIANGIAN;ST.72=NIANGU;SIGNAL SKILLDO;END
  738. IF LGD='2' THEN DO;ST.71=PENMORDS;ST.72=PENMORD;SIGNAL SKILLDO;END
  739. IF LGD='3' THEN DO;ST.71=SHALKAN;ST.72=SHALAMAR;SIGNAL SKILLDO;END
  740. IF LGD='4' THEN DO;ST.71=FALAKIAN;ST.72=FALAKAL;SIGNAL SKILLDO;END
  741. IF LGD='5' THEN DO;ST.71=ZNAGITE;ST.72=ZYORN NAGATAZ;SIGNAL SKILLDO;END
  742. IF LGD='6' THEN DO;ST.71=BRANG;ST.72=SHULA HXSA;SIGNAL SKILLDO;END
  743. SIGNAL NTGOD
  744.  
  745. CHGOD:
  746. IF ST.70=LAWLESS IMMORAL & ST.128=HUMWARRIOR THEN ST.128=HUMWARRIORE
  747. TT 'F1'
  748. SFI MPATH||'CHGOD'
  749. SX 'N1CAWHAT GOD & RELIGION SHALL YOU CHOOSE? '
  750. GETCHAR
  751. LGD=UPPER(RESULT)
  752. IF LGD=p THEN SIGNAL QUIT
  753. IF LGD='1' THEN DO;ST.71=PANGORIK;ST.72=PLAZADRUM;SIGNAL SKILLDO;END
  754. IF LGD='2' THEN DO;ST.71=GUTZILUM;ST.72=ZEIL GUTAREK;SIGNAL SKILLDO;END
  755. IF LGD='3' THEN DO;ST.71=DARKADS;ST.72=MREXOLE;SIGNAL SKILLDO;END
  756. IF LGD='4' THEN DO;ST.71=FADED;ST.72=SWOIRTEZ BINZC;SIGNAL SKILLDO;END
  757. IF LGD='5' THEN DO;ST.71=CHAOS;ST.72=FRUGUMUM;SIGNAL SKILLDO;END
  758. IF LGD='6' THEN DO;ST.71=BALAK;ST.72=LIZIMUM DETH;SIGNAL SKILLDO;END
  759. SIGNAL CHGOD
  760.  
  761. SKILLDO:
  762. TXS=9
  763. TT 'F1'
  764. SIGNAL NEWSWRITE
  765.  
  766. NEWSWRITE:
  767. IF ST.4<2 THEN NLINE1='CF'NAME 'CAENTERED THE REALM ASCF' ST.1'CA...'
  768. IF ST.4<2 THEN NLINE2='CAAND CHOSE TO BE ACF' ST.70' 'ST.2' 'ST.3'CA...'
  769. IF ST.4>1 THEN NLINE1='CF'ST.1 'CAHAS GAINED A LEVEL...'
  770. IF ST.4>1 THEN NLINE2='CAMAKING THEM A LEVELCF' ST.4 'CE'ST.70' 'ST.2' 'ST.3'CA...'
  771. EL='W'
  772. IF EXISTS(NPATH||'NEWS')=1 THEN EL='A'
  773. CALL OPEN(1,NPATH||'NEWS',EL)
  774. CALL WRITELN(1,NLINE1)
  775. CALL WRITELN(1,NLINE2)
  776. CALL CLOSE(1)
  777. SIGNAL DOSTAT
  778.  
  779. DOSTAT:
  780. TT 'F0CAN1NOW YOU MUST ADD TO YOUR PRESENT MUNDANE SKILL LEVELS.'
  781. TT 'N1CF1. CABLACK SMITH :CB' ST.92
  782. TT 'CF2. CARIDING SKILL:CB' ST.93
  783. TT 'CF3. CADISGUISE    :CB' ST.94
  784. TT 'CF4. CAHUNTING     :CB' ST.95
  785. TT 'CF5. CATREKING     :CB' ST.96
  786. TT 'CF6. CALANGUAGE    :CB' ST.91
  787. TT 'CF7. CAARCHITECTURE:CB' ST.90
  788. TT 'CF8. CE*CASPECIAL    :CB' ST.89
  789. TT 'N1C9BONUS POINTS:CF' TXS
  790. IF TXS=0 THEN DO;TT 'N1C9YOUR BONUS POINTS ARE EXPENDED...W2';START=YES;SIGNAL SAVESTATS;END 
  791. SX 'N2CBWHICH SKILL C9# CBWOULD YOU LIKE UPGRADED?C9 '
  792. GETCHAR
  793. DSA=UPPER(RESULT)
  794. IF DSA='1' THEN DO;ST.92=ST.92+1;TXS=TXS-1;SIGNAL DOSTAT;END
  795. IF DSA='2' THEN DO;ST.93=ST.93+1;TXS=TXS-1;SIGNAL DOSTAT;END
  796. IF DSA='3' THEN DO;ST.94=ST.94+1;TXS=TXS-1;SIGNAL DOSTAT;END
  797. IF DSA='4' THEN DO;ST.95=ST.95+1;TXS=TXS-1;SIGNAL DOSTAT;END
  798. IF DSA='5' THEN DO;ST.96=ST.96+1;TXS=TXS-1;SIGNAL DOSTAT;END
  799. IF DSA='6' THEN DO;ST.91=ST.91+1;TXS=TXS-1;SIGNAL DOSTAT;END
  800. IF DSA='7' THEN DO;ST.90=ST.90+1;TXS=TXS-1;SIGNAL DOSTAT;END
  801. IF DSA='8' THEN DO;ST.89=ST.89+1;TXS=TXS-1;SIGNAL DOSTAT;END
  802. SIGNAL DOSTAT
  803.  
  804. STARTOVER:
  805. SX 'F1N1CAARE YOU SURE YOU WANT TO START FROM THE BEGINNING AGAIN? '
  806. GETCHAR
  807. STRT=UPPER(RESULT)
  808. IF STRT=p THEN SIGNAL QUIT
  809. IF STRT='Y' THEN SIGNAL CUTUP
  810. SIGNAL MAIN
  811.  
  812. MAIN:
  813. GETUSER 1200032
  814. ZTIME=RESULT
  815. ATIME=ZTIME/10
  816. IF ATIME>=TLIMIT THEN DO;TT 'CAF1N6YOU HAVE EXCEEDED YOUR TIME LIMIT THIS TURN!W2';SIGNAL QUIT;END
  817. NTIME=TLIMIT-ATIME
  818. ST.162=0
  819. START=NO
  820. ST.159=0
  821. BZZ=MAIN
  822. IF MAIN=YES THEN DO;TT 'F1';SFI MPATH||'CITYMAIN';END
  823. SX 'F0BC9(C6MINUTES LEFTCF' NTIME'C9) '
  824. GETCHAR
  825. MN=UPPER(RESULT)
  826. IF MN=p THEN SIGNAL QUIT
  827. IF MN='Q' THEN SIGNAL QUIT1
  828. IF MN='V' THEN SIGNAL VIEWCHAR
  829. IF MN='X' THEN SIGNAL STARTOVER
  830. IF MN='Z' THEN SIGNAL SELECTAPIC
  831. IF MN='N' THEN SIGNAL NOTEBOOK
  832. IF MN='O' THEN DO;BBSCOMMAND OLM;SIGNAL MAIN;END
  833. IF MN='Y' THEN DO;BBSCOMMAND WH;TT 'G1';SIGNAL MAIN;END 
  834. IF MN='K' THEN SIGNAL ARENA
  835. IF MN='J' THEN DO;'BBSCOMMAND MU * ';TT 'W2';SIGNAL MAIN;END
  836. IF MN='H' THEN SIGNAL HEALER
  837. IF MN='W' THEN SIGNAL WEAPONS
  838. IF MN='A' THEN SIGNAL ARMORS
  839. IF MN='S' THEN SIGNAL SPELLBOOK
  840. IF MN='R' THEN SIGNAL RESTED
  841. IF MN='4' THEN SIGNAL DOCREAD
  842. IF MN='E' THEN DO;TT 'F1';MAP=1;X=1;Y=11;BBB=1;ST.159=1;SIGNAL ICON;END
  843. IF MN='L' THEN SIGNAL LORDSLIST
  844. IF MN='B' THEN SIGNAL STABLES
  845. IF MN='U' THEN SIGNAL DELAYED
  846. IF MN='P' THEN SIGNAL PIXON
  847. IF MN='M' THEN SIGNAL MAGICSHOP
  848. IF MN='D' THEN SIGNAL DEALER
  849. IF MN='1' THEN SIGNAL DAILYREAD
  850. IF MN='2' THEN SIGNAL CHEPHI
  851. IF MN='3' THEN SIGNAL BIGHI
  852. IF MN='C' THEN SIGNAL TEMPLED
  853. IF MN='I' THEN SIGNAL IMPOSSY
  854. IF MN='F' THEN DO;MAIN=YES;TT 'C9N1THIS VERSION IS NOT WINNABLEW2';SIGNAL MAIN;END
  855. MAIN=NO
  856. SIGNAL MAIN
  857.  
  858. CHEPHI:
  859. MAIN=YES
  860. IF ~EXISTS(LILPATH||ST.115) THEN DO;TT 'N1C9THERE ARE NO MORE HINTS IN THIS AREA! WIMP!!W2';SIGNAL MAIN;END
  861. IF ST.170<ST.115*100 THEN DO;TT 'N1C9YOU DO NOT HAVE THE CASH FOR THIS OPTIONW2';SIGNAL MAIN;END
  862. HNTZ=ST.115*100
  863. ST.170=ST.170-HNTZ
  864. TT 'F1'
  865. SFI LILPATH||ST.115
  866. TT 'G1'
  867. ST.115=ST.115+1
  868. SIGNAL MAIN
  869.  
  870. BIGHI:
  871. MAIN=YES
  872. IF ~EXISTS(BIGPATH||ST.116) THEN DO;TT 'N1C9THERE ARE NO MORE HINTS IN THIS AREA! WIMP!!W2';SIGNAL MAIN;END
  873. IF ST.170<ST.116*1000 THEN DO;TT 'N1C9YOU DO NOT HAVE THE CASH FOR THIS OPTIONW2';SIGNAL MAIN;END
  874. HNTZ=ST.116*1000
  875. ST.170=ST.170-HNTZ
  876. TT 'F1'
  877. SFI BIGPATH||ST.116
  878. TT 'G1'
  879. ST.116=ST.116+1
  880. SIGNAL MAIN
  881.  
  882. FINALQ:
  883. MAIN=YES
  884. IF ST.134~=YES THEN DO;TT 'N1C9YOU MUST COMPLETE ALL OF THE CFCLERGY MISSIONSC9 FIRST!W2';SIGNAL MAIN;END
  885. IF ST.135~=YES THEN DO;TT 'N1C9YOU MUST COMPLETE ALL OF THE CFIMPOSSIBLE QUESTSC9 FIRST!W2';SIGNAL MAIN;END
  886. SFI SPATH||'CONGRA'
  887. SX 'CACHOOSE A C9# CB>>> '
  888. GETCHAR
  889. FNLQ=UPPER(RESULT)
  890. IF FNLQ=p THEN SIGNAL QUIT
  891. IF FNLQ='1' THEN DO;TT 'CAYOU HAVE CHOSEN CFOVERONCA! GOOD LUCKW2';ST.136=1;SIGNAL MAIN;END
  892. IF FNLQ='2' THEN DO;TT 'CAYOU HAVE CHOSEN CFSARANDONCA! GOOD LUCKW2';ST.136=2;SIGNAL MAIN;END
  893. IF FNLQ='3' THEN DO;TT 'CAYOU HAVE CHOSEN CFUGILAXCA! GOOD LUCKW2';ST.136=3;SIGNAL MAIN;END
  894. IF FNLQ='4' THEN DO;TT 'CAYOU HAVE CHOSEN CFXAKALACA! GOOD LUCKW2';ST.136=4;SIGNAL MAIN;END
  895. SIGNAL FINALQ
  896.  
  897. IMPOSSY:
  898. MAIN=YES
  899. IF ST.109=YES THEN SIGNAL MISSNED1
  900. IF ST.110>0 & ST.109=Q THEN DO;TT 'N1C9YOU ARE CURRENTLY ON A QUESTW2';SIGNAL MAIN;END
  901. TT 'F1'
  902. SFI SPATH||'IMPOSSIBLE'
  903. SX 'N1CFARE YOU READY FOR YOUR MISSION? '
  904. GETCHAR
  905. MSSA=UPPER(RESULT)
  906. IF MSSA=p THEN SIGNAL QUIT
  907. IF MSSA='N' THEN SIGNAL MAIN
  908. ST.109=Q
  909. ST.110=ST.110+1
  910. IF ~EXISTS(QUESPATH||ST.110) THEN DO;TT 'N1C9SORRY. THERE ARE NO MORE QUESTS AVAILABLEW2';SIGNAL MAIN;END
  911. CALL OPEN(1,QUESPATH||ST.110,'R')
  912. DO I=1 TO 11
  913.  MSLNE.I=READLN(1)
  914. END
  915. CALL CLOSE(1)
  916. TT 'F1N1C9HERE IS YOUR MISSION:CAN1'
  917. TT ''MSLNE.1
  918. TT ''MSLNE.2
  919. TT ''MSLNE.3
  920. TT ''MSLNE.4
  921. TT ''MSLNE.5
  922. TT ''MSLNE.6
  923. TT 'N1CFFOR THIS WE SHALL PAY YOU:'
  924. TT 'CBGOLD:CF'MSLNE.7
  925. TT 'CDGEMS:CF'MSLNE.8
  926. TT 'CEJEWELS:CF'MSLNE.9
  927. TT 'CAEXPERIENCE:CF'MSLNE.10
  928. TT 'N1CBDO YOU WANT US TO WRITE THE FOLLOWING LINE IN YOUR NOTEBOOK'
  929. TT 'TO HELP YOU REMEMBER WHAT YOU ARE SUPPOSED TO DO?'
  930. SX 'N1CA'MSLNE.11 'N1C9>>> '
  931. GETCHAR
  932. NBLN=UPPER(RESULT)
  933. IF NBLN=p THEN SIGNAL QUIT
  934. IF NBLN='N' THEN DO;TT 'CFVERY WELL. GOOD LUCK!W2';SIGNAL MAIN;END
  935. EL='W'
  936. IF EXISTS(NOTPATH||NAME)=1 THEN EL='A'
  937. CALL OPEN(1,NOTPATH||NAME,EL)
  938. CALL WRITELN(1,MSLNE.11)
  939. CALL CLOSE(1)
  940. SIGNAL MAIN
  941.  
  942. TEMPLED:
  943. MAIN=YES
  944. IF ST.167=M THEN SXD=SON
  945. IF ST.167=F THEN SXD=DAUGHTER
  946. IF ST.111=YES THEN SIGNAL MISSNED
  947. IF ST.112>0 & ST.111=C THEN DO;TT 'N1C9YOU ARE CURRENTLY ON A MISSIONW2';SIGNAL MAIN;END
  948. TT 'F1'
  949. SFI SPATH||'CLERGY'
  950. TT 'CDWELCOME MY' SXD 'TO THE TEMPLE OFCA' ST.72
  951. SX 'N1CFARE YOU READY FOR YOUR MISSION? '
  952. GETCHAR
  953. MSSA=UPPER(RESULT)
  954. IF MSSA=p THEN SIGNAL QUIT
  955. IF MSSA='N' THEN SIGNAL MAIN
  956. ST.111=C
  957. ST.112=ST.112+1
  958. IF ~EXISTS(MISPATH||ST.112) THEN DO;TT 'N1C9SORRY. THERE ARE NO MORE MISSIONS AVAILABLEW2';SIGNAL MAIN;END
  959. CALL OPEN(1,MISPATH||ST.112,'R')
  960. DO I=1 TO 11
  961.  MSLNE.I=READLN(1)
  962. END
  963. CALL CLOSE(1)
  964. TT 'F1N1C9HERE IS YOUR MISSION:CAN1'
  965. TT ''MSLNE.1
  966. TT ''MSLNE.2
  967. TT ''MSLNE.3
  968. TT ''MSLNE.4
  969. TT ''MSLNE.5
  970. TT ''MSLNE.6
  971. TT 'N1CFFOR THIS WE SHALL PAY YOU:'
  972. TT 'CBGOLD:CF'MSLNE.7
  973. TT 'CDGEMS:CF'MSLNE.8
  974. TT 'CEJEWELS:CF'MSLNE.9
  975. TT 'CAEXPERIENCE:CF'MSLNE.10
  976. TT 'N1CBDO YOU WANT US TO WRITE THE FOLLOWING LINE IN YOUR NOTEBOOK TO HELP'
  977. TT 'YOU REMEMBER WHAT YOU ARE SUPPOSED TO DO?'
  978. SX 'N1CA'MSLNE.11 'N1C9>>> '
  979. GETCHAR
  980. NBLN=UPPER(RESULT)
  981. IF NBLN=p THEN SIGNAL QUIT
  982. IF NBLN='N' THEN DO;TT 'CFVERY WELL. GOOD LUCK!W2';SIGNAL MAIN;END
  983. EL='W'
  984. IF EXISTS(NOTPATH||NAME)=1 THEN EL='A'
  985. CALL OPEN(1,NOTPATH||NAME,EL)
  986. CALL WRITELN(1,MSLNE.11)
  987. CALL CLOSE(1)
  988. SIGNAL MAIN
  989.  
  990. MISSNED:
  991. TT 'F1N4S1C9CONGRATULATIONS! YOU HAVE COMPLETED YOUR MISSION!W2S0' 
  992. CALL OPEN(1,MISPATH||ST.112,'R')
  993. DO I=1 TO 11
  994.  MSLN.I=READLN(1)
  995. END
  996. CALL CLOSE(1)
  997. ST.111=A
  998. ST.170=ST.170+MSLN.7
  999. ST.154=ST.154+MSLN.8
  1000. ST.155=ST.155+MSLN.9
  1001. XXP=MSLN.10/ST.168
  1002. PARSE VAR XXP MSPS"."REMDS
  1003. NLINE1='CF'ST.1 'CAHAS COMPLETED MISSION#CF'ST.112
  1004. EL='W'
  1005. IF EXISTS(NPATH||'NEWS')=1 THEN EL='A'
  1006. CALL OPEN(1,NPATH||'NEWS',EL)
  1007. CALL WRITELN(1,NLINE1)
  1008. CALL CLOSE(1)
  1009. ST.5=ST.5+MSPS
  1010. IF ST.112=12 THEN ST.134=YES
  1011. IF ST.5>=ST.6 THEN SIGNAL LEVELGAIN
  1012. SIGNAL TEMPLED
  1013.  
  1014. MISSNED1:
  1015. TT 'F1N4S1C9CONGRATULATIONS! YOU HAVE COMPLETED YOUR QUEST!W2S0' 
  1016. CALL OPEN(1,QUESPATH||ST.110,'R')
  1017. DO I=1 TO 11
  1018.  MSLN.I=READLN(1)
  1019. END
  1020. CALL CLOSE(1)
  1021. ST.109=A
  1022. ST.170=ST.170+MSLN.7
  1023. ST.154=ST.154+MSLN.8
  1024. ST.155=ST.155+MSLN.9
  1025. XXP=MSLN.10/ST.168
  1026. PARSE VAR XXP MSPS"."REMDS
  1027. NLINE1='CF'ST.1 'CAHAS COMPLETED THE IMPOSSIBLE QUEST#CF'ST.110
  1028. EL='W'
  1029. IF EXISTS(NPATH||'NEWS')=1 THEN EL='A'
  1030. CALL OPEN(1,NPATH||'NEWS',EL)
  1031. CALL WRITELN(1,NLINE1)
  1032. CALL CLOSE(1)
  1033. ST.5=ST.5+MSPS
  1034. IF ST.110=10 THEN ST.135=YES
  1035. IF ST.5>=ST.6 THEN SIGNAL LEVELGAIN
  1036. SIGNAL TEMPLED
  1037.  
  1038. DAILYREAD:
  1039. MAIN=YES
  1040. IF EXISTS(NPATH||'NEWS') THEN SIGNAL NREADIT
  1041. TT 'N1CATHERE IS NO NEWS EXCITING ENOUGH TO TELL YOU ABOUT!W2'
  1042. SIGNAL MAIN
  1043.  
  1044. NREADIT:
  1045. SXX=1
  1046. TT 'F1CBTHE EARTH LORDS CANEWS OF THE REALM'
  1047. CALL OPEN(1,NPATH||'NEWS','R')
  1048. DO UNTIL EOF(1)=1
  1049.  NLN1=READLN(1)
  1050.  NLN2=READLN(1)
  1051. IF NLN1~=' ' THEN DO;TT ''NLN1'N1'NLN2'N1';SXX=SXX+1;END
  1052. IF SXX=7 THEN DO;SXX=1;TT 'N1CF...any keyG1F1';END
  1053. END
  1054. CALL CLOSE(1)
  1055. TT 'N1C1                                     .....HIT A KEY WHEN FINISHEDG1'
  1056. SIGNAL MAIN
  1057.  
  1058. DEALER:
  1059. TT 'F1CAOKAY, HERE IS WHAT I CAN BUY FROM YOU:N1'
  1060. IF ITEM.1~=' ' THEN TT 'CF1. CE' LEFT(ITEM.1' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.1' ',2) 'CFAMOUNT:CE' AMOUNT.1
  1061. IF ITEM.2~=' ' THEN TT 'CF2. CE' LEFT(ITEM.2' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.2' ',2) 'CFAMOUNT:CE' AMOUNT.2
  1062. IF ITEM.3~=' ' THEN TT 'CF3. CE' LEFT(ITEM.3' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.3' ',2) 'CFAMOUNT:CE' AMOUNT.3
  1063. IF ITEM.4~=' ' THEN TT 'CF4. CE' LEFT(ITEM.4' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.4' ',2) 'CFAMOUNT:CE' AMOUNT.4
  1064. IF ITEM.5~=' ' THEN TT 'CF5. CE' LEFT(ITEM.5' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.5' ',2) 'CFAMOUNT:CE' AMOUNT.5
  1065. IF ITEM.6~=' ' THEN TT 'CF6. CE' LEFT(ITEM.6' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.6' ',2) 'CFAMOUNT:CE' AMOUNT.6
  1066. IF ITEM.7~=' ' THEN TT 'CF7. CE' LEFT(ITEM.7' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.7' ',2) 'CFAMOUNT:CE' AMOUNT.7
  1067. IF ITEM.8~=' ' THEN TT 'CF8. CE' LEFT(ITEM.8' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.8' ',2) 'CFAMOUNT:CE' AMOUNT.8
  1068. IF ITEM.9~=' ' THEN TT 'CF9. CE' LEFT(ITEM.9' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.9' ',2) 'CFAMOUNT:CE' AMOUNT.9
  1069. IF ITEM.10~=' ' THEN TT 'CF10. CE' LEFT(ITEM.10' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.10' ',2) 'CFAMOUNT:CE' AMOUNT.10
  1070. TT ' '
  1071. IF ST.31~=SKIN THEN TT 'CBA. CA' ST.31
  1072. IF ST.33~=FIST THEN TT 'CBW. CA' ST.33
  1073. IF ST.38~=NONE THEN TT 'CBM. CA' ST.38
  1074. IF ST.130~=' ' THEN TT 'CBS. CA' ST.130
  1075. IF ST.157~=' ' THEN TT 'CBL. CA' ST.157
  1076. IF ST.158~=' ' THEN TT 'CBR. CA' ST.158
  1077. TT ' '
  1078. IF ST.154~=0 THEN TT 'CCGCEEMS   C9' ST.154
  1079. IF ST.155~=0 THEN TT 'CDJCEEWELS C9' ST.155
  1080. TT 'N1CB                                               GOLD:CF' ST.170
  1081. QUERY 'N1CBWHAT DO YOU WANNA SELL? C9[Q=QUIT] '
  1082. DEALT=UPPER(RESULT)
  1083. IF DEALT=p THEN SIGNAL QUIT
  1084. IF DEALT='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  1085. IF DEALT='A' & ST.31~=SKIN THEN SIGNAL ASELL
  1086. IF DEALT='W' & ST.33~=FIST THEN SIGNAL WSELL
  1087. IF DEALT='M' & ST.38~=NONE THEN SIGNAL MSELL
  1088. IF DEALT='S' & ST.130~=' ' THEN SIGNAL SSELL
  1089. IF DEALT='L' & ST.157~=' ' THEN SIGNAL LSELL
  1090. IF DEALT='R' & ST.158~=' ' THEN SIGNAL RSELL
  1091. IF DEALT='G' & ST.154~=0 THEN SIGNAL GSELL
  1092. IF DEALT='J' & ST.155~=0 THEN SIGNAL JSELL
  1093. IF EXISTS(IPATH||ITEM.DEALT) THEN SIGNAL ISELL
  1094. TT 'C9WRONG! TRY AGAIN...W2'
  1095. SIGNAL DEALER
  1096.  
  1097. ISELL:
  1098. CALL OPEN(1,IPATH||ITEM.DEALT,'R')
  1099. DO I=1 TO 10
  1100.  ISS.I=READLN(1)
  1101. END
  1102. CALL CLOSE(1)
  1103. PAID=ISS.3/2
  1104. PARSE VAR PAID SPND'.'REMD
  1105. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ITEM.DEALT 'C9[Y/N] '
  1106. GETCHAR
  1107. WILLY=UPPER(RESULT)
  1108. IF WILLY=p THEN SIGNAL QUIT
  1109. IF WILLY='N' THEN SIGNAL DEALER
  1110. ST.170=ST.170+SPND
  1111. AMOUNT.DEALT=AMOUNT.DEALT-1
  1112. IF ISS.10=WAND THEN WEIGHT.DEALT=10
  1113. IF AMOUNT.DEALT=0 THEN DO;ITEM.DEALT=' ';DELSIT=YES;SIGNAL MOVEUP;END
  1114. SIGNAL DEALER
  1115.  
  1116. GSELL:
  1117. TT 'N1CAI AM THE ONLY ONE WHO WILL BUY GEMS AND JEWELS SO YOU MAY'
  1118. TT 'AS WELL SELL ALL OF THEM. I PAY CB50 CAGOLD PIECES EACH FOR GEMS.'
  1119. SX 'CAN1CEIS THIS ACCEPTABLE? C9[Y/N] '
  1120. GETCHAR
  1121. GSS=UPPER(RESULT)
  1122. IF GSS=p THEN SIGNAL QUIT
  1123. IF GSS='N' THEN DO;TT 'CAKEEP THEM THEN. NO SKIN OFF MY NOSE...W2';SIGNAL DEALER;END
  1124. GMS=ST.154*50
  1125. ST.170=ST.170+GMS
  1126. ST.154=0
  1127. SIGNAL DEALER
  1128.  
  1129. JSELL:
  1130. TT 'N1CAI AM THE ONLY ONE WHO WILL BUY GEMS AND JEWELS SO YOU MAY'
  1131. TT 'AS WELL SELL ALL OF THEM. I PAY CB100 CAGOLD PIECES EACH FOR JEWELS.'
  1132. SX 'CAN1CEIS THIS ACCEPTABLE? C9[Y/N] '
  1133. GETCHAR
  1134. GSS=UPPER(RESULT)
  1135. IF GSS=p THEN SIGNAL QUIT
  1136. IF GSS='N' THEN DO;TT 'CAKEEP THEM THEN. NO SKIN OFF MY NOSE...W2';SIGNAL DEALER;END
  1137. JMS=ST.155*100
  1138. ST.170=ST.170+JMS
  1139. ST.155=0
  1140. SIGNAL DEALER
  1141.  
  1142. LSELL:
  1143. CALL OPEN(1,IPATH||ST.157,'R')
  1144. DO I=1 TO 10
  1145.  LSS.I=READLN(1)
  1146. END
  1147. CALL CLOSE(1)
  1148. PAID=LSS.3/2
  1149. PARSE VAR PAID SPND'.'REMD
  1150. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ST.157 'C9[Y/N] '
  1151. GETCHAR
  1152. WILLY=UPPER(RESULT)
  1153. IF WILLY=p THEN SIGNAL QUIT
  1154. IF WILLY='N' THEN SIGNAL DEALER
  1155. ST.157=' '
  1156. ST.170=ST.170+SPND
  1157. SIGNAL DEALER
  1158.  
  1159. RSELL:
  1160. CALL OPEN(1,IPATH||ST.158,'R')
  1161. DO I=1 TO 10
  1162.  RSS.I=READLN(1)
  1163. END
  1164. CALL CLOSE(1)
  1165. PAID=RSS.3/2
  1166. PARSE VAR PAID SPND'.'REMD
  1167. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ST.158 'C9[Y/N] '
  1168. GETCHAR
  1169. WILLY=UPPER(RESULT)
  1170. IF WILLY=p THEN SIGNAL QUIT
  1171. IF WILLY='N' THEN SIGNAL DEALER
  1172. ST.158=' '
  1173. ST.170=ST.170+SPND
  1174. SIGNAL DEALER
  1175.  
  1176. ASELL:
  1177. IF ST.3=MONK THEN DO;TT 'CAA MONK CANNOT SELL HIS ROBE...W2';SIGNAL DEALER;END
  1178. CALL OPEN(1,APATH||ST.31,'R')
  1179. DO I=1 TO 5
  1180.  ASS.I=READLN(1)
  1181. END
  1182. CALL CLOSE(1)
  1183. PAID=ASS.3/2
  1184. PARSE VAR PAID SPND'.'REMD
  1185. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ST.31 'C9[Y/N] '
  1186. GETCHAR
  1187. WILLY=UPPER(RESULT)
  1188. IF WILLY=p THEN SIGNAL QUIT
  1189. IF WILLY='N' THEN SIGNAL DEALER
  1190. ST.170=ST.170+SPND
  1191. ST.31=SKIN
  1192. ST.32=10-ST.129-ST.15
  1193. ST.30=10
  1194. ST.153=0
  1195. SIGNAL DEALER
  1196.  
  1197. SSELL:
  1198. CALL OPEN(1,APATH||ST.130,'R')
  1199. DO I=1 TO 5
  1200.  ASS.I=READLN(1)
  1201. END
  1202. CALL CLOSE(1)
  1203. PAID=ASS.3/2
  1204. PARSE VAR PAID SPND'.'REMD
  1205. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ST.130 'C9[Y/N] '
  1206. GETCHAR
  1207. WILLY=UPPER(RESULT)
  1208. IF WILLY=p THEN SIGNAL QUIT
  1209. IF WILLY='N' THEN SIGNAL DEALER
  1210. ST.170=ST.170+SPND
  1211. ST.32=ST.32+ST.129
  1212. ST.129=0
  1213. ST.130=' '
  1214. ST.156=0
  1215. SIGNAL DEALER
  1216.  
  1217. WSELL:
  1218. CALL OPEN(1,WPATH||ST.33,'R')
  1219. DO I=1 TO 9
  1220.  WSS.I=READLN(1)
  1221. END
  1222. CALL CLOSE(1)
  1223. PAID=WSS.5/2
  1224. PARSE VAR PAID SPND'.'REMD
  1225. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ST.33 'C9[Y/N] '
  1226. GETCHAR
  1227. WILLY=UPPER(RESULT)
  1228. IF WILLY=p THEN SIGNAL QUIT
  1229. IF WILLY='N' THEN SIGNAL DEALER
  1230. ST.170=ST.170+SPND
  1231. ST.33=FIST
  1232. ST.34=NONE
  1233. ST.35=NONE
  1234. ST.36=1
  1235. ST.37=4
  1236. ST.152=0
  1237. SIGNAL DEALER
  1238.  
  1239. MSELL:
  1240. CALL OPEN(1,WPATH||ST.38,'R')
  1241. DO I=1 TO 9
  1242.  WSS.I=READLN(1)
  1243. END
  1244. CALL CLOSE(1)
  1245. PAID=WSS.5/2
  1246. PARSE VAR PAID SPND'.'REMD
  1247. SX 'N1CAI WILL PAY YOUCB' SPND 'CAGOLD PIECES FOR THATCF' ST.38 'C9[Y/N] '
  1248. GETCHAR
  1249. WILLY=UPPER(RESULT)
  1250. IF WILLY=p THEN SIGNAL QUIT
  1251. IF WILLY='N' THEN SIGNAL DEALER
  1252. ST.170=ST.170+SPND
  1253. ST.38=NONE
  1254. ST.39=NONE
  1255. ST.40=NONE
  1256. ST.41=0
  1257. ST.42=0
  1258. ST.151=0
  1259. SIGNAL DEALER
  1260.  
  1261. MAGICSHOP:
  1262. MAIN=YES
  1263. TT 'F1'
  1264. SFI MPATH||'MAGICSHOP'
  1265. TT '                                                            CBGOLD:CF' ST.170
  1266. QUERY 'CEWHAT WILL BE YOUR PLEASURE TODAY?C9 '
  1267. MGCS=UPPER(RESULT)
  1268. IF MGCS=p THEN SIGNAL QUIT
  1269. IF MGCS='Q' THEN SIGNAL MAIN
  1270. IF MGCS='1' & ST.170>24 THEN DO;ST.108=YES;TT 'N1CATHANKS...W2';ST.170=ST.170-25;SIGNAL MAGICSHOP;END
  1271. IF MGCS>1 & MGCS<26 THEN SIGNAL ITEMBUY
  1272. IF MGCS>25 & MGCS<33 THEN SIGNAL WEPBUY
  1273. IF MGCS>32 & MGCS<42 THEN SIGNAL ARMBUY
  1274. TT 'N1C9SORRY...I JUST DON''T SEE YOUR SELECTIONW2'
  1275. SIGNAL MAGICSHOP
  1276.  
  1277. ARMBUY:
  1278. MGAR=MGCS-32
  1279. CALL OPEN(1,APATH||'MARM','R')
  1280.  DO I=1 TO 9
  1281.   MWRM.I=READLN(1)
  1282.  END
  1283. CALL CLOSE(1)
  1284. IF ~EXISTS(APATH||MWRM.MGAR) THEN DO;TT 'C9N1SORRY, I HAVE NONE OF THOSE IN STOCK!W2';SIGNAL MAGICSHOP;END
  1285. CALL OPEN(1,APATH||MWRM.MGAR,'R')
  1286.  DO I=1 TO 9
  1287.  AMX.I=READLN(1)
  1288.  END
  1289. CALL CLOSE(1)
  1290. MOGARM=YES
  1291. IF MGCS=34 | MGCS=35 | MGCS=36 | MGCS=37 | MGCS=38 | MGCS=40 | MGCS=41 THEN AM=8
  1292. IF MGCS=39 THEN AM=1
  1293. IF MGCS=33 THEN AM=6
  1294. SIGNAL ARMLIMIT
  1295.  
  1296. WEPBUY:
  1297. MGWP=MGCS-25
  1298. CALL OPEN(1,WPATH||'MWEP','R')
  1299.  DO I=1 TO 7
  1300.   MWPS.I=READLN(1)
  1301.  END
  1302. CALL CLOSE(1)
  1303. IF ~EXISTS(WPATH||MWPS.MGWP) THEN DO;TT 'C9N1SORRY, I HAVE NONE OF THOSE IN STOCK!W2';SIGNAL MAGICSHOP;END
  1304. CALL OPEN(1,WPATH||MWPS.MGWP,'R')
  1305.  DO I=1 TO 9
  1306.  WPX.I=READLN(1)
  1307.  END
  1308. CALL CLOSE(1)
  1309. MOGWEP=YES
  1310. SIGNAL CLASSLIMIT
  1311.  
  1312. ITEMBUY:
  1313. CALL OPEN(1,IPATH||'MITEM','R')
  1314. DO I=1 TO 25
  1315.   MTM.I=READLN(1)
  1316. END
  1317. CALL CLOSE(1)
  1318. IF ~EXISTS(IPATH||MTM.MGCS) THEN DO;TT 'C9N1SORRY, I HAVE NONE OF THOSE IN STOCK!W2';SIGNAL MAGICSHOP;END
  1319. CALL OPEN(1,IPATH||MTM.MGCS,'R')
  1320.  DO I=1 TO 10
  1321.  IST.I=READLN(1)
  1322.  END
  1323. CALL CLOSE(1)
  1324. TT 'N1CEA CF'MTM.MGCS 'CECOSTSCF' IST.3 'CEGOLD PIECES'
  1325. IF IST.3>ST.170 THEN DO;TT 'N1C9YOU DO NOT HAVE THE GOLD TO BUY THIS...W2';SIGNAL MAGICSHOP;END
  1326. SX 'N1CADO YOU WANT ONE? '
  1327. GETCHAR
  1328. MANS=UPPER(RESULT)
  1329. IF MANS=p THEN SIGNAL QUIT
  1330. IF MANS='N' THEN SIGNAL MAGICSHOP
  1331. IF MGCS>5 & MGCS<13 THEN SIGNAL RINGDO
  1332. ST.170=ST.170-IST.3
  1333. IF UPPER(MTM.MGCS)=UPPER(ITEM.1) THEN DO;AMOUNT.1=AMOUNT.1+1;SIGNAL MAGICSHOP;END
  1334. IF UPPER(MTM.MGCS)=UPPER(ITEM.2) THEN DO;AMOUNT.2=AMOUNT.2+1;SIGNAL MAGICSHOP;END
  1335. IF UPPER(MTM.MGCS)=UPPER(ITEM.3) THEN DO;AMOUNT.3=AMOUNT.3+1;SIGNAL MAGICSHOP;END
  1336. IF UPPER(MTM.MGCS)=UPPER(ITEM.4) THEN DO;AMOUNT.4=AMOUNT.4+1;SIGNAL MAGICSHOP;END
  1337. IF UPPER(MTM.MGCS)=UPPER(ITEM.5) THEN DO;AMOUNT.5=AMOUNT.5+1;SIGNAL MAGICSHOP;END
  1338. IF UPPER(MTM.MGCS)=UPPER(ITEM.6) THEN DO;AMOUNT.6=AMOUNT.6+1;SIGNAL MAGICSHOP;END
  1339. IF UPPER(MTM.MGCS)=UPPER(ITEM.7) THEN DO;AMOUNT.7=AMOUNT.7+1;SIGNAL MAGICSHOP;END
  1340. IF UPPER(MTM.MGCS)=UPPER(ITEM.8) THEN DO;AMOUNT.8=AMOUNT.8+1;SIGNAL MAGICSHOP;END
  1341. IF UPPER(MTM.MGCS)=UPPER(ITEM.9) THEN DO;AMOUNT.9=AMOUNT.9+1;SIGNAL MAGICSHOP;END
  1342. IF UPPER(MTM.MGCS)=UPPER(ITEM.10) THEN DO;AMOUNT.10=AMOUNT.10+1;SIGNAL MAGICSHOP;END
  1343. IF ITEM.10~=' ' THEN DO;TT 'CAYOUR BACKBACK IS FULL!!W1';SIGNAL MAGICSHOP;END
  1344. IF ITEM.1=' ' THEN DO;ITEM.1=MTM.MGCS;WEIGHT.1=IST.2;AMOUNT.1=1;VALUE.1=IST.3;SIGNAL MAGICSHOP;END
  1345. IF ITEM.2=' ' THEN DO;ITEM.2=MTM.MGCS;WEIGHT.2=IST.2;AMOUNT.2=1;VALUE.2=IST.3;SIGNAL MAGICSHOP;END
  1346. IF ITEM.3=' ' THEN DO;ITEM.3=MTM.MGCS;WEIGHT.3=IST.2;AMOUNT.3=1;VALUE.3=IST.3;SIGNAL MAGICSHOP;END
  1347. IF ITEM.4=' ' THEN DO;ITEM.4=MTM.MGCS;WEIGHT.4=IST.2;AMOUNT.4=1;VALUE.4=IST.3;SIGNAL MAGICSHOP;END
  1348. IF ITEM.5=' ' THEN DO;ITEM.5=MTM.MGCS;WEIGHT.5=IST.2;AMOUNT.5=1;VALUE.5=IST.3;SIGNAL MAGICSHOP;END
  1349. IF ITEM.6=' ' THEN DO;ITEM.6=MTM.MGCS;WEIGHT.6=IST.2;AMOUNT.6=1;VALUE.6=IST.3;SIGNAL MAGICSHOP;END
  1350. IF ITEM.7=' ' THEN DO;ITEM.7=MTM.MGCS;WEIGHT.7=IST.2;AMOUNT.7=1;VALUE.7=IST.3;SIGNAL MAGICSHOP;END
  1351. IF ITEM.8=' ' THEN DO;ITEM.8=MTM.MGCS;WEIGHT.8=IST.2;AMOUNT.8=1;VALUE.8=IST.3;SIGNAL MAGICSHOP;END
  1352. IF ITEM.9=' ' THEN DO;ITEM.9=MTM.MGCS;WEIGHT.9=IST.2;AMOUNT.9=1;VALUE.9=IST.3;SIGNAL MAGICSHOP;END
  1353. IF ITEM.10=' ' THEN DO;ITEM.10=MTM.MGCS;WEIGHT.10=IST.2;AMOUNT.10=1;VALUE.10=IST.3;SIGNAL MAGICSHOP;END
  1354. SIGNAL MAGICSHOP
  1355.  
  1356. RINGDO:
  1357. IF ST.157=' ' THEN DO;ST.170=ST.170-IST.3;ST.157=UPPER(MTM.MGCS);SIGNAL MAGICSHOP;END
  1358. IF ST.158=' ' THEN DO;ST.170=ST.170-IST.3;ST.158=UPPER(MTM.MGCS);SIGNAL MAGICSHOP;END
  1359. IF ST.158~=' ' & ST.157~=' ' THEN DO;TT 'N1C9YOU MAY ONLY WEAR TWO RINGS! PERHAPS YOU SHOULD SELL ONE!W2';SIGNAL MAGICSHOP;END
  1360. TT 'CATHANKS...W1'
  1361. SIGNAL MAGICSHOP
  1362.  
  1363. PIXON:
  1364. IF ST.127=ON THEN DO;ST.127=OFF;TT 'C9PICTURES NOW OFF!W2';MAIN=YES;SIGNAL SHUFFLE;END
  1365. IF ST.127=OFF THEN DO;ST.127=ON;TT 'C9PICTURES NOW ON!W2';MAIN=YES;SIGNAL SHUFFLE;END
  1366.  
  1367. DELAYED:
  1368. TT 'F1CAN3THIS WILL ALLOW YOU THE OPTION OF CHANGING THE DEFAULT'
  1369. TT 'SPEED OF THE COMBAT MESSAGES TO A SPEED WHICH WILL SUIT YOU...'
  1370. TT ''
  1371. TT 'CB1. CFSLOW'
  1372. TT 'CB2. CFNORMAL'
  1373. TT 'CB3. CFFAST'
  1374. TT 'CB4. C9BLAZING!!!'
  1375. SX 'N1CEWHICH C9# CEWILL IT BE? '
  1376. GETCHAR
  1377. SPEED=UPPER(RESULT)
  1378. IF SPEED=p THEN SIGNAL QUIT
  1379. IF SPEED='1' THEN ST.163='W3'
  1380. IF SPEED='2' THEN ST.163='W2'
  1381. IF SPEED='3' THEN ST.163='W1'
  1382. IF SPEED='4' THEN ST.163='W0'
  1383. IF CSPAD=YES THEN DO;CSPAD=NO;SIGNAL COMBATPREP;END
  1384. DO;MAIN=YES;SIGNAL MAIN;END
  1385.  
  1386. SPLLCST:
  1387. MAIN=YES
  1388. IF ST.97=NO THEN DO;TT 'ACAYOU ARE NOT CAPABLE OF THIS ACT!W1';SIGNAL LOSEIT;END
  1389. IF EXISTS(BPATH||NAME) THEN SIGNAL SPELLSHOW
  1390. TT 'AC9YOU HAVEN''T MEMORIZED ANY SPELLS!!!W1'
  1391. SIGNAL LOSEIT
  1392.  
  1393. SPELLSHOW:
  1394. IF BRED=NO THEN DO;CALL OPEN(1,BPATH||NAME,'R');DO I=1 TO 45;SPNAME.I=READLN(1);SPTOTAL.I=READLN(1);SPAMOUNT.I=READLN(1);END;CALL CLOSE(1);END
  1395. BRED=YES
  1396. TT 'F1CBTHE MEMORIZED SPELLS OF CA' ST.1
  1397. TT ''
  1398. TT 'CE1.  CF'LEFT(SPNAME.1' ',16) 'C9'LEFT(SPAMOUNT.1' ',2) 'CE16. CF'LEFT(SPNAME.16' ',16) 'C9'LEFT(SPAMOUNT.16' ',2) 'CE31. CF'LEFT(SPNAME.31' ',16) 'C9'LEFT(SPAMOUNT.31' ',2)
  1399. TT 'CE2.  CF'LEFT(SPNAME.2' ',16) 'C9'LEFT(SPAMOUNT.2' ',2) 'CE17. CF'LEFT(SPNAME.17' ',16) 'C9'LEFT(SPAMOUNT.17' ',2) 'CE32. CF'LEFT(SPNAME.32' ',16) 'C9'LEFT(SPAMOUNT.32' ',2)
  1400. TT 'CE3.  CF'LEFT(SPNAME.3' ',16) 'C9'LEFT(SPAMOUNT.3' ',2) 'CE18. CF'LEFT(SPNAME.18' ',16) 'C9'LEFT(SPAMOUNT.18' ',2) 'CE33. CF'LEFT(SPNAME.33' ',16) 'C9'LEFT(SPAMOUNT.33' ',2)
  1401. TT 'CE4.  CF'LEFT(SPNAME.4' ',16) 'C9'LEFT(SPAMOUNT.4' ',2) 'CE19. CF'LEFT(SPNAME.19' ',16) 'C9'LEFT(SPAMOUNT.19' ',2) 'CE34. CF'LEFT(SPNAME.34' ',16) 'C9'LEFT(SPAMOUNT.34' ',2)
  1402. TT 'CE5.  CF'LEFT(SPNAME.5' ',16) 'C9'LEFT(SPAMOUNT.5' ',2) 'CE20. CF'LEFT(SPNAME.20' ',16) 'C9'LEFT(SPAMOUNT.20' ',2) 'CE35. CF'LEFT(SPNAME.35' ',16) 'C9'LEFT(SPAMOUNT.35' ',2)
  1403. TT 'CE6.  CF'LEFT(SPNAME.6' ',16) 'C9'LEFT(SPAMOUNT.6' ',2) 'CE21. CF'LEFT(SPNAME.21' ',16) 'C9'LEFT(SPAMOUNT.21' ',2) 'CE36. CF'LEFT(SPNAME.36' ',16) 'C9'LEFT(SPAMOUNT.36' ',2)
  1404. TT 'CE7.  CF'LEFT(SPNAME.7' ',16) 'C9'LEFT(SPAMOUNT.7' ',2) 'CE22. CF'LEFT(SPNAME.22' ',16) 'C9'LEFT(SPAMOUNT.22' ',2) 'CE37. CF'LEFT(SPNAME.37' ',16) 'C9'LEFT(SPAMOUNT.37' ',2)
  1405. TT 'CE8.  CF'LEFT(SPNAME.8' ',16) 'C9'LEFT(SPAMOUNT.8' ',2) 'CE23. CF'LEFT(SPNAME.23' ',16) 'C9'LEFT(SPAMOUNT.23' ',2) 'CE38. CF'LEFT(SPNAME.38' ',16) 'C9'LEFT(SPAMOUNT.38' ',2)
  1406. TT 'CE9.  CF'LEFT(SPNAME.9' ',16) 'C9'LEFT(SPAMOUNT.9' ',2) 'CE24. CF'LEFT(SPNAME.24' ',16) 'C9'LEFT(SPAMOUNT.24' ',2) 'CE39. CF'LEFT(SPNAME.39' ',16) 'C9'LEFT(SPAMOUNT.39' ',2)
  1407. TT 'CE10. CF'LEFT(SPNAME.10' ',16) 'C9'LEFT(SPAMOUNT.10' ',2) 'CE25. CF'LEFT(SPNAME.25' ',16) 'C9'LEFT(SPAMOUNT.25' ',2) 'CE40. CF'LEFT(SPNAME.40' ',16) 'C9'LEFT(SPAMOUNT.40' ',2)
  1408. TT 'CE11. CF'LEFT(SPNAME.11' ',16) 'C9'LEFT(SPAMOUNT.11' ',2) 'CE26. CF'LEFT(SPNAME.26' ',16) 'C9'LEFT(SPAMOUNT.26' ',2) 'CE41. CF'LEFT(SPNAME.41' ',16) 'C9'LEFT(SPAMOUNT.41' ',2)
  1409. TT 'CE12. CF'LEFT(SPNAME.12' ',16) 'C9'LEFT(SPAMOUNT.12' ',2) 'CE27. CF'LEFT(SPNAME.27' ',16) 'C9'LEFT(SPAMOUNT.27' ',2) 'CE42. CF'LEFT(SPNAME.42' ',16) 'C9'LEFT(SPAMOUNT.42' ',2)
  1410. TT 'CE13. CF'LEFT(SPNAME.13' ',16) 'C9'LEFT(SPAMOUNT.13' ',2) 'CE28. CF'LEFT(SPNAME.28' ',16) 'C9'LEFT(SPAMOUNT.28' ',2) 'CE43. CF'LEFT(SPNAME.43' ',16) 'C9'LEFT(SPAMOUNT.43' ',2)
  1411. TT 'CE14. CF'LEFT(SPNAME.14' ',16) 'C9'LEFT(SPAMOUNT.14' ',2) 'CE29. CF'LEFT(SPNAME.29' ',16) 'C9'LEFT(SPAMOUNT.29' ',2) 'CE44. CF'LEFT(SPNAME.44' ',16) 'C9'LEFT(SPAMOUNT.44' ',2)
  1412. TT 'CE15. CF'LEFT(SPNAME.15' ',16) 'C9'LEFT(SPAMOUNT.15' ',2) 'CE30. CF'LEFT(SPNAME.30' ',16) 'C9'LEFT(SPAMOUNT.30' ',2) 'CE45. CF'LEFT(SPNAME.45' ',16) 'C9'LEFT(SPAMOUNT.45' ',2)
  1413. QUERY 'N1CAWHICH SPELL C9# CAWOULD YOU LIKE TO CAST?C9 [Q=QUIT]CF '
  1414. SPLN=UPPER(RESULT)
  1415. IF SPLN=p THEN SIGNAL QUIT
  1416. IF SPLN=' ' THEN SIGNAL SHUFFLE
  1417. IF SPLN='Q' THEN SIGNAL SHUFFLE
  1418. IF SPNAME.SPLN=' ' THEN DO;TT 'N1C9YOU HAVE NOT MEMORIZED THAT MANY SPELLSW2';SIGNAL SPELLSHOW;END
  1419. IF SPAMOUNT.SPLN=0 THEN DO;TT 'N1CEYOU HAVE NO MORE OF THIS SPELL IN YOUR MEMORY!W2';SIGNAL SPELLSHOW;END
  1420. SPNME=UPPER(SPNAME.SPLN)
  1421. IF EXISTS(SKPATH||SPNAME.SPLN) THEN SIGNAL CLLSPLL
  1422. SIGNAL SPELLSHOW
  1423.  
  1424. USEITEM1:
  1425. COMBTER=YES
  1426. TT 'F1N3CAHERE IS A LIST OF YOUR ITEMS:N1'
  1427. IF ITEM.1~=' ' THEN TT 'CF1. CE' LEFT(ITEM.1' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.1' ',2) 'CFAMOUNT:CE' AMOUNT.1
  1428. IF ITEM.2~=' ' THEN TT 'CF2. CE' LEFT(ITEM.2' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.2' ',2) 'CFAMOUNT:CE' AMOUNT.2
  1429. IF ITEM.3~=' ' THEN TT 'CF3. CE' LEFT(ITEM.3' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.3' ',2) 'CFAMOUNT:CE' AMOUNT.3
  1430. IF ITEM.4~=' ' THEN TT 'CF4. CE' LEFT(ITEM.4' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.4' ',2) 'CFAMOUNT:CE' AMOUNT.4
  1431. IF ITEM.5~=' ' THEN TT 'CF5. CE' LEFT(ITEM.5' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.5' ',2) 'CFAMOUNT:CE' AMOUNT.5
  1432. IF ITEM.6~=' ' THEN TT 'CF6. CE' LEFT(ITEM.6' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.6' ',2) 'CFAMOUNT:CE' AMOUNT.6
  1433. IF ITEM.7~=' ' THEN TT 'CF7. CE' LEFT(ITEM.7' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.7' ',2) 'CFAMOUNT:CE' AMOUNT.7
  1434. IF ITEM.8~=' ' THEN TT 'CF8. CE' LEFT(ITEM.8' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.8' ',2) 'CFAMOUNT:CE' AMOUNT.8
  1435. IF ITEM.9~=' ' THEN TT 'CF9. CE' LEFT(ITEM.9' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.9' ',2) 'CFAMOUNT:CE' AMOUNT.9
  1436. IF ITEM.10~=' ' THEN TT 'CF10. CE' LEFT(ITEM.10' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.10' ',2) 'CFAMOUNT:CE' AMOUNT.10
  1437. TT ' '
  1438. IF UPPER(ST.35)~=NONE THEN TT 'CFW. CE' ST.33
  1439. IF UPPER(ST.40)~=NONE THEN TT 'CFM. CE' ST.38
  1440. QUERY 'N1CBWHAT SHALL IT BE? C9[Q=QUIT] '
  1441. CMBIT=UPPER(RESULT)
  1442. IF CMBIT=p THEN SIGNAL QUIT
  1443. IF CMBIT='Q' THEN DO;COMBTER=NO;SIGNAL SHUFFLE;END
  1444. IF CMBIT='W' & ST.35~='NONE' THEN DO;SPNME=ST.35;SIGNAL CLLSPLL;END
  1445. IF CMBIT='M' & ST.40~='NONE' THEN DO;SPNME=ST.40;SIGNAL CLLSPLL;END
  1446. IF WEIGHT.CMBIT=0 THEN DO;TT 'CATHISCF' ITEM.CMBIT 'HAS NO CHARGES!W1';SIGNAL USEITEM1;END
  1447. IF EXISTS(IPATH||ITEM.CMBIT) & ITEM.CMBIT~=' ' THEN SIGNAL CMBUSE1
  1448. TT 'C9PICK A REAL ITEM...W1'
  1449. SIGNAL USEITEM1 
  1450.  
  1451. CMBUSE1:
  1452. CALL OPEN(1,IPATH||ITEM.CMBIT,'R')
  1453.  DO I=1 TO 10
  1454.  JAKE.I=READLN(1)
  1455.  END
  1456. CALL CLOSE(1)
  1457. IF JAKE.6=COMBAT THEN DO;TT 'N1C9THIS ITEM IS USED IN COMBAT! AND YOU ARE NOT IN COMBAT!W2';SIGNAL USEITEM1;END
  1458. SPNME=UPPER(JAKE.4)
  1459. COMBTER=YES
  1460. WEIGHT.CMBIT=WEIGHT.CMBIT-1
  1461. IF WEIGHT.CMBIT=0 & JAKE.10=WAND THEN DO;AMOUNT.CMBIT=AMOUNT.CMBIT-1;WEIGHT.CMBIT=10;END
  1462. IF WEIGHT.CMBIT=0 & JAKE.10~=WAND THEN DO;AMOUNT.CMBIT=AMOUNT.CMBIT-1;WEIGHT.CMBIT=1;END
  1463. IF AMOUNT.CMBIT=0 THEN DO;ITEM.CMBIT=' ';SIGNAL MOVEUP;END
  1464. SIGNAL CLLSPLL
  1465.  
  1466. CLLSPLL:
  1467. CALL OPEN(1,SKPATH||SPNME,'R')
  1468. DO I=1 TO 9
  1469.  SP.I=READLN(1)
  1470. END
  1471. CALL CLOSE(1)
  1472. IF UPPER(SP.3)=COMBAT THEN DO;TT 'N1CAHMM. THAT IS A COMBAT SPELL & YOU ARE NOT IN COMBAT!W2';SIGNAL SPELLSHOW;END
  1473. IF UPPER(SP.1)=UNLOCK THEN DO;TT 'N1CATHIS IS USED TO UNLOCK DOORS! WAIT UNTIL YOU COME TO ONE!W2';SIGNAL SPELLSHOW;END
  1474. IF UPPER(SP.3)=HEAL THEN SIGNAL HEAL
  1475. IF UPPER(SP.3)=ILLUSION THEN SIGNAL LITUP
  1476. IF UPPER(SP.3)=TRAVEL THEN SIGNAL TRAVELER
  1477. SIGNAL SHUFFLE
  1478.  
  1479. TRAVELER:
  1480. IF UPPER(SP.1)=LOCATION THEN DO;TT 'N1CAYOU CAST A C9LOCATIONCA SPELL TO FIND YOUR WHEREABOUTSW2';DAM=MAP;DAX=X;DAY=Y;SPELLA=SP.8*ST.4;END
  1481. IF UPPER(SP.1)=FLY THEN DO;FLY=YES;SPELLB=SP.8*ST.4;SIGNAL FLY;END
  1482. IF UPPER(SP.1)=ANGELIC THEN DO;FLY=YES;SPELLB=SP.8*ST.4;SIGNAL FLY;END
  1483. IF UPPER(SP.1)=STUNNEL THEN DO;TUNNEL=YES;SPELLC=SP.8*ST.4;TT 'N1CAYOU CAST THE CFSHORT TUNNELCA. BEWARE OF GETTING TRAPPED!W2';END
  1484. IF UPPER(SP.1)=TELEPORT THEN SIGNAL TELEPORTER
  1485. IF UPPER(SP.1)=HOME THEN DO;MAP=0;BZZ=MAIN;SIGNAL TAKEDOWN;END
  1486. IF UPPER(SP.1)=CITY THEN DO;MAP=0;BZZ=MAIN;SIGNAL TAKEDOWN;END
  1487. IF UPPER(SP.1)=WALKER THEN DO;TT 'N1CAYOU CAST A WATER WALKER SPELL! HAPPY SAILING...W2';SPELLB=SP.8*ST.4;WALK=YES;END
  1488. IF UPPER(SP.1)=ASTRAL THEN SIGNAL ASTRALDO
  1489. SIGNAL TAKEDOWN
  1490.  
  1491. ASTRALDO:
  1492. TT 'F1N3C9SORRY, THERE ARE NO ASTRAL REALMS IN THIS VERSIONW2'
  1493. SIGNAL TAKEDOWN
  1494.  
  1495. TELEPORTER:
  1496. TT 'F1N3CAREMEMBER THAT THIS SPELL WILL PLACE YOU AT THE OPENING OF ANY C9INTERIORCA MAP!'
  1497. QUERY 'N1CBWHAT MAP DO YOU WISH TO TELEPORT TO? C9[Q=QUIT] '
  1498. TELP=UPPER(RESULT)
  1499. IF TELP=p THEN SIGNAL QUIT
  1500. IF TELP<13 THEN SIGNAL TELEPORTER
  1501. IF TELP='Q' THEN SIGNAL TAKEDOWN
  1502. IF TELP>30 THEN SIGNAL TELEPORTER
  1503. IF EXISTS(MAPATH||TELP) & DOOF=NOKAY THEN DO;DOOF=OKAY;SIGNAL SPECIAL3;END
  1504. IF EXISTS(MAPATH||TELP) THEN DO;SPAMOUNT.SPLN=SPAMOUNT.SPLN-1;CALL OPEN(1,BPATH||NAME,'W');DO I=1 TO 45;CALL WRITELN(1,SPNAME.I);CALL WRITELN(1,SPTOTAL.I);CALL WRITELN(1,SPAMOUNT.I);END;CALL CLOSE(1);SIGNAL SPECIAL3;END
  1505. TT 'N1C9THERE IS NO SUCH PLACEW1'
  1506. SIGNAL TELEPORTER
  1507.  
  1508. SPECIAL3:
  1509. CALL OPEN(1,MAPATH||'KEYMAP','R')
  1510. DO I=1 TO 85
  1511.  MPNM.I=READLN(1)
  1512.  MPTO.I=READLN(1)
  1513.  MPLOC.I=READLN(1)
  1514. END
  1515. CALL CLOSE(1)
  1516. MAP=MPTO.TELP
  1517. LOC=MPLOC.TELP
  1518. MOVES=0
  1519. BBB=1
  1520. SIGNAL SPECIAL 
  1521.  
  1522. FLY:
  1523. IF DOOF=OKAY & UPPER(ST.117)=UPPER(TIME STEED) THEN SIGNAL FLY2
  1524. IF DOOF=OKAY & UPPER(ST.117)=UPPER(PEGASUS) THEN SIGNAL FLY1
  1525. IF DOOF=OKAY & UPPER(ST.117)=UPPER(BLOOD DRAGON) THEN SIGNAL FLY1
  1526. IF DOOF=OKAY & UPPER(ST.117)=UPPER(STEEL DRAGON) THEN SIGNAL FLY1
  1527. IF FLY=YES & ST.162>1 THEN DO;TT 'C9N1YOU ARE ALREADY FLYING!W2';SIGNAL SHUFFLE;END
  1528. IF MAP>12 THEN DO;FLY=NO;TT 'N1C9YOU CANNOT FLY INDOORS!!W2';SIGNAL SHUFFLE;END
  1529. IF ST.121=0 & FLY~=YES THEN DO;TT 'CFYOUR MOUNT IS NOT CAPABLE OF FLYING...W2';SIGNAL SHUFFLE;END
  1530. QUERY 'F1N3CAHOW HIGH ARE YOU GONNA FLY? '
  1531. FLHT=RESULT
  1532. IF FLHT=p THEN SIGNAL QUIT
  1533. IF FLY~=YES & FLHT>ST.121 THEN DO;TT 'N1C9YOUR MOUNT CANNOT FLY THAT HIGH!W2';SIGNAL FLY;END 
  1534. IF FLY=YES & FLHT>10000 THEN DO;TT 'N1C9YOU CANNOT FLY THAT HIGH!W1';SIGNAL FLY;END
  1535. IF FLHT<100 THEN DO;TT 'N1C9GET REAL! WHAT IS THE POINT? FLY AT LEAST 100 FT.W1';SIGNAL FLY;END
  1536. ST.162=FLHT
  1537. TT 'N1CAOKAY YOU ARE NOW CRUISING ATCF' FLHT 'CAFEET!W2'
  1538. IF FLY=YES THEN SIGNAL TAKEDOWN
  1539. FLY=YES
  1540. DOOF=OKAY
  1541. SIGNAL SHUFFLE
  1542.  
  1543. FLY1:
  1544. TT 'F1CAN2YOUR MOUNT IS CAPABLE OF C9TCAELEPORTING OR C9FCALYING'
  1545. SX 'CBN1WHICH DO YOU WANT TO DO? '
  1546. GETCHAR
  1547. TELEFLY=UPPER(RESULT)
  1548. IF TELEFLY=p THEN SIGNAL QUIT
  1549. IF TELEFLY='F' THEN DO;DOOF=NOKAY;SIGNAL FLY;END
  1550. IF TELEFLY='T' THEN DO;DOOF=NOKAY;SIGNAL TELEPORTER;END
  1551. SIGNAL FLY1
  1552.  
  1553. FLY2:
  1554. TT 'F1CAN2YOUR MOUNT IS CAPABLE OF  C9ACASTRAL TRAVEL  C9TCAELEPORTING  &  C9FCALYING'
  1555. SX 'CBN1WHICH DO YOU WANT TO DO? '
  1556. GETCHAR
  1557. TELEFLY=UPPER(RESULT)
  1558. IF TELEFLY=p THEN SIGNAL QUIT
  1559. IF TELEFLY='F' THEN DO;DOOF=NOKAY;SIGNAL FLY;END
  1560. IF TELEFLY='T' THEN DO;DOOF=NOKAY;SIGNAL TELEPORTER;END
  1561. IF TELEFLY='A' THEN DO;DOOF=NOKAY;SIGNAL ASTRALDO;END
  1562. SIGNAL FLY2
  1563.  
  1564. LITUP:    
  1565. IF SP.1=INVISIBLE THEN DO;INVIS=YES;TT 'N1C9WHERE DID YOU GO?W2';SIGNAL TAKEDOWN;END
  1566. IF SP.1=INVISOPRIEST THEN DO;INVIS=YES;TT 'N1C9WHERE DID YOU GO?W2';SIGNAL TAKEDOWN;END
  1567.  
  1568. HEAL:
  1569. IF ST.26=ST.27 THEN DO;TT 'N1CAYOU DO NOT NEED HEALING!W2';SIGNAL SHUFFLE;END
  1570. IF UPPER(SP.7)=BONUS THEN SIGNAL PSNC
  1571. PHL=VRND(SP.5,SP.6)
  1572. PHL1=VRND(SP.5,SP.6)
  1573. PHL2=PHL+PHL1
  1574. PHL3=PHL2/2
  1575. PHL4=PHL3*ST.4
  1576. MAX=ST.27-ST.26
  1577. IF PHL4>MAX THEN PHL4=MAX
  1578. ST.26=ST.26+PHL4
  1579. TT 'N1CAYOU HEALED YOURSELF OFCF' PHL4 'CAIN DAMAGE!W2'
  1580. SIGNAL TAKEDOWN
  1581.  
  1582. TAKEDOWN:
  1583. IF DOOF=NOKAY THEN DO;DOOF=OKAY;SIGNAL SHUFFLE;END
  1584. IF COMBTER=YES THEN DO;COMBTER=NO;SIGNAL SHUFFLE;END
  1585. IF CMBTER=YES THEN DO;COMBTER=NO;SIGNAL COMBATPREP;END
  1586. SPAMOUNT.SPLN=SPAMOUNT.SPLN-1
  1587. CALL OPEN(1,BPATH||NAME,'W')
  1588. DO I=1 TO 45
  1589. CALL WRITELN(1,SPNAME.I)
  1590. CALL WRITELN(1,SPTOTAL.I)
  1591. CALL WRITELN(1,SPAMOUNT.I)
  1592. END
  1593. CALL CLOSE(1)
  1594. SIGNAL SHUFFLE
  1595.  
  1596. PSNC:
  1597. IF ST.50=POISONED THEN DO;TT 'N1CAYOU CURE YOURSELF OF THAT NASTY POISONW2';ST.50=OKAY;SPAMOUNT.SPLN=SPAMOUNT.SPLN-1;CALL OPEN(1,BPATH||NAME,'W');DO I=1 TO 45;CALL WRITELN(1,SPNAME.I);CALL WRITELN(1,SPTOTAL.I);CALL WRITELN(1,SPAMOUNT.I);END;CALL CLOSE(1);SIGNAL SHUFFLE;END
  1598. TT 'N1C9YOU ARE NOT POISONED!W2'
  1599. SIGNAL SPELLSHOW
  1600.  
  1601. STABLES:
  1602. TT 'F1'
  1603. SFI MPATH||'STABLES'
  1604. TT 'N1                                                            CBGOLD:CF' ST.170
  1605. SX 'N1CBWHAT CAN YOU HANDLE, BUDDY?C9 '
  1606. GETCHAR
  1607. MOX=UPPER(RESULT)
  1608. IF MOX=p THEN SIGNAL QUIT
  1609. IF MOX=' ' THEN DO;MAIN=YES;SIGNAL MAIN;END
  1610. IF MOX='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  1611. IF MOX<1 | MOX>9 THEN DO;TT 'N1CAWHY GOOD SIR THERE IS NO SUCH MOUNT AVAILABLE...W2';SIGNAL STABLES;END
  1612. CALL OPEN(1,MOUNPATH||'MOUNTS','R')
  1613. DO I=1 TO 9
  1614. MOUNP.I=READLN(1)
  1615. END
  1616. CALL CLOSE(1)
  1617. IF ~EXISTS(MOUNPATH||MOUNP.MOX) THEN SIGNAL STABLES
  1618. CALL OPEN(1,MOUNPATH||MOUNP.MOX,'R')
  1619. DO I=1 TO 10
  1620.  MAX.I=READLN(1)
  1621. END
  1622. CALL CLOSE(1)
  1623. IF MAX.3>ST.170 THEN DO;TT 'N1CAYOU DON''T HAVE THAT MUCH MONEY!W2';SIGNAL STABLES;END
  1624. IF MAX.10>ST.93 THEN DO;TT 'N1CAYOU DO NOT POSSESS THE SKILLS TO RIDE SUCH A BEAST!W2';SIGNAL STABLES;END
  1625. TT 'N1CAAC9' MAX.1 'CACOSTSCB' MAX.3 'CAGOLD'
  1626. SX 'N1CCWILL YOU BE TAKIN'' HER HOME? C9[Y/N] '
  1627. GETCHAR
  1628. MSDA=UPPER(RESULT)
  1629. IF MSDA=p THEN SIGNAL QUIT
  1630. IF MSDA='N' THEN SIGNAL STABLES
  1631. QUERY 'N1CFGREAT! AND WHAT SHALL YOU NAME YOUR TRUSTYC9' MAX.1'? '
  1632. MNAME=RESULT
  1633. ST.170=ST.170-MAX.3
  1634. ST.126=MNAME
  1635. ST.117=MAX.1
  1636. ST.118=MAX.2
  1637. ST.119=MAX.4
  1638. ST.120=MAX.5
  1639. ST.121=MAX.6
  1640. ST.122=MAX.7
  1641. ST.123=MAX.8
  1642. ST.125=MAX.9
  1643. SIGNAL MAIN
  1644.  
  1645. LORDSLIST:
  1646. TT 'F1N2CEHERE IS A LIST OF THE RESIDENTS OF C9THE EARTH LORDSCE REALMN1'
  1647. CALL OPEN(1,UPATH||'LORDS','R')
  1648.  DO UNTIL EOF(1)=1
  1649.  LORD=READLN(1)
  1650.  USER=READLN(1)
  1651.  IF LORD~='' THEN DO;TT 'CAREALM RESIDENT:CB' LEFT(LORD' ',30)'CC:PLAYER:CF' LEFT(USER' ',20);END
  1652. END
  1653. CALL CLOSE(1)
  1654. TT 'N1CAHIT A KEY TO STOP STARING...G1'
  1655. DO; MAIN=YES;SIGNAL MAIN;END
  1656.  
  1657. ICON:
  1658. NOPE=NO
  1659. ST.159=MAP
  1660. ST.160=X
  1661. ST.161=Y
  1662. SIGNAL ICON1
  1663.  
  1664. NEWMAP:
  1665. IF EXISTS(CPATH||'CLEAN') THEN ADDRESS COMMAND 'C:CLEAN'
  1666. CALL OPEN(1,CODEPATH||MAP,'R')
  1667. DO I=1 TO 350
  1668.  MIPS.I=READLN(1)
  1669. END
  1670. CALL CLOSE(1)
  1671. CALL OPEN(1,DROPATH||MAP,'R')
  1672. DO I=1 TO 350
  1673.  LUUK.I=READLN(1)
  1674. END
  1675. CALL CLOSE(1)
  1676. SIGNAL OUTSIDE
  1677.  
  1678. ICON1:
  1679. BZZ=OUTSIDE
  1680. X=ST.160
  1681. Y=ST.161
  1682. TEXT=OUTDOOR
  1683. MAP=ST.159
  1684. IF ST.3=NINJA THEN ICON=''
  1685. IF ST.3=PRIEST THEN ICON='+'
  1686. IF ST.3=WARRIOR THEN ICON=''
  1687. IF ST.3=WIZARD THEN ICON='-*'
  1688. IF ST.3=MONK THEN ICON='**'
  1689. IF ST.3=ANTI KNIGHT THEN ICON=''
  1690. IF ST.3=KNIGHT THEN ICON='+'
  1691. IF ST.3=GUIDE THEN ICON='*'
  1692. IF ST.3=ROGUE THEN ICON=''
  1693. IF ST.3=WARRIORROGUE THEN ICON=''
  1694. IF ST.3=WARRIORWIZARD THEN ICON=''
  1695. IF ST.3=WARRIORWIZARDROGUE THEN ICON=''
  1696. IF ST.3=WARRIORPRIEST THEN ICON=''
  1697. IF ST.3=WIZARDROGUE THEN ICON='-*'
  1698. IF ST.3=WIZARDPRIEST THEN ICON='+'
  1699. IF ST.3=AMAZONIAN THEN ICON=''
  1700. IF ST.3=PRIESTESS THEN ICON='+'
  1701. IF ST.3=AMAZONIANWITCH THEN ICON=''
  1702. IF ST.3=AMAZONIANWITCHROGUE THEN ICON=''
  1703. IF ST.3=AMAZONIAN PRIESTESS THEN ICON=''
  1704. IF ST.3=AMAZONIANROGUE  THEN ICON=''
  1705. IF ST.3=WITCHPRIESTESS THEN ICON='+'
  1706. IF ST.3=WITCHROGUE THEN ICON='-*'
  1707. IF ST.3=WITCH THEN ICON='-*'
  1708. MOVES=0
  1709. MLN1='BCC9MOUNT:CF' LEFT(ST.117' ',11)
  1710. MLN2='BCCCHEALTH:CE' ST.122
  1711. MLN3='BCCANAME:CB' LEFT(ST.126' ',11)
  1712. MOUNDEW=YES
  1713. SIGNAL NEWMAP
  1714.  
  1715. XMOVE:
  1716. IF X=0 THEN XPOS='D'ICON'C'
  1717. IF X=1 THEN XPOS='D'ICON'C'
  1718. IF X=2 THEN XPOS='D'ICON'C'
  1719. IF X=3 THEN XPOS='D'ICON'C'
  1720. IF X=4 THEN XPOS='D'ICON'C'
  1721. IF X=5 THEN XPOS='D'ICON'C'
  1722. IF X=6 THEN XPOS='D'ICON'C'
  1723. IF X=7 THEN XPOS='D'ICON'C'
  1724. IF X=8 THEN XPOS='D'ICON'C'
  1725. IF X=9 THEN XPOS='D'ICON'C'
  1726. IF X=10 THEN XPOS='D'ICON'C'
  1727. IF X=11 THEN XPOS='D'ICON'C'
  1728. IF X=12 THEN XPOS='D'ICON'C'
  1729. IF X=13 THEN XPOS='D'ICON'C'
  1730. IF X=14 THEN XPOS='D'ICON'C'
  1731. IF X=15 THEN XPOS='D'ICON'C'
  1732. IF X=16 THEN XPOS='D'ICON'C'
  1733. IF X=17 THEN XPOS='D'ICON'C'
  1734. IF X=18 THEN XPOS='D'ICON'C'
  1735. IF X=19 THEN XPOS='D'ICON'C'
  1736. IF X=20 THEN XPOS='D'ICON'C'
  1737. IF X=21 THEN XPOS='D'ICON'C'
  1738. IF X=22 THEN XPOS='D'ICON'C'
  1739. IF X=23 THEN XPOS='D'ICON'C'
  1740. IF X=24 THEN XPOS='D'ICON'C'
  1741. IF X=25 THEN XPOS=''ICON
  1742. SIGNAL YMOVE
  1743.  
  1744. YMOVE:
  1745. MPLINE1=MPLINE1'CF'
  1746. MPLINE1='CCF'MP.1
  1747. MPLINE2='CCF'MP.2
  1748. MPLINE3='CCF'MP.3
  1749. MPLINE4='CCF'MP.4
  1750. MPLINE5='CCF'MP.5
  1751. MPLINE6='CCF'MP.6
  1752. MPLINE7='CCF'MP.7
  1753. MPLINE8='CCF'MP.8
  1754. MPLINE9='CCF'MP.9
  1755. MPLINE10='CCF'MP.10
  1756. MPLINE11='CCF'MP.11
  1757. MPLINE12='CCF'MP.12
  1758. MPLINE13='CCF'MP.13
  1759. MPLINE14='CCF'MP.14
  1760. MPLINE15='CCF'MP.15
  1761. MPLINE16='CCF'MP.16
  1762. IF Y=2 THEN MPLINE2=MPLINE2'D'XPOS'CF'
  1763. IF Y=3 THEN MPLINE3=MPLINE3'D'XPOS'CF'
  1764. IF Y=4 THEN MPLINE4=MPLINE4'D'XPOS'CF'
  1765. IF Y=5 THEN MPLINE5=MPLINE5'D'XPOS'CF'
  1766. IF Y=6 THEN MPLINE6=MPLINE6'D'XPOS'CF'
  1767. IF Y=7 THEN MPLINE7=MPLINE7'D'XPOS'CF'
  1768. IF Y=8 THEN MPLINE8=MPLINE8'D'XPOS'CF'
  1769. IF Y=9 THEN MPLINE9=MPLINE9'D'XPOS'CF'
  1770. IF Y=10 THEN MPLINE10=MPLINE10'D'XPOS'CF'
  1771. IF Y=11 THEN MPLINE11=MPLINE11'D'XPOS'CF'
  1772. IF Y=12 THEN MPLINE12=MPLINE12'D'XPOS'CF'
  1773. IF Y=13 THEN MPLINE13=MPLINE13'D'XPOS'CF'
  1774. IF Y=14 THEN MPLINE14=MPLINE14'D'XPOS'CF'
  1775. IF Y=15 THEN MPLINE15=MPLINE15'D'XPOS'CF'
  1776. MPLINE16=MPLINE16'CF'
  1777. SIGNAL MAPSHOW
  1778.  
  1779. MAPSTUFF:
  1780. SIGNAL XMOVE
  1781.  
  1782. OUTSIDE:
  1783. DO;CALL OPEN(1,MAPATH||MAP,'R');DO I=1 TO 16;MP.I=READLN(1);END;CALL CLOSE(1);END
  1784. MPLINE1='CCF'MP.1
  1785. MPLINE2='CCF'MP.2
  1786. MPLINE3='CCF'MP.3
  1787. MPLINE4='CCF'MP.4
  1788. MPLINE5='CCF'MP.5
  1789. MPLINE6='CCF'MP.6
  1790. MPLINE7='CCF'MP.7
  1791. MPLINE8='CCF'MP.8
  1792. MPLINE9='CCF'MP.9
  1793. MPLINE10='CCF'MP.10
  1794. MPLINE11='CCF'MP.11
  1795. MPLINE12='CCF'MP.12
  1796. MPLINE13='CCF'MP.13
  1797. MPLINE14='CCF'MP.14
  1798. MPLINE15='CCF'MP.15
  1799. MPLINE16='CCF'MP.16
  1800. SIGNAL XMOVE
  1801.  
  1802. MAPSHOW:
  1803. IF BBB=1 THEN DO;TT 'F1';SFI SPATH||'MAPBACK';END
  1804. BBB=BBB+1
  1805. IF OLDTEXT=TEXT THEN SIGNAL MOVE
  1806. DO;CALL OPEN(1,DPATH||TEXT,'R');DO I=1 TO 13;TX.I=READLN(1);END;CALL CLOSE(1);END
  1807. IF TX.1=' ' THEN TX.1='                        '
  1808. IF TX.2=' ' THEN TX.2='                        '
  1809. IF TX.3=' ' THEN TX.3='                        '
  1810. IF TX.4=' ' THEN TX.4='                        '
  1811. IF TX.5=' ' THEN TX.5='                        '
  1812. IF TX.6=' ' THEN TX.6='                        '
  1813. IF TX.7=' ' THEN TX.7='                        '
  1814. IF TX.8=' ' THEN TX.8='                        '
  1815. IF TX.9=' ' THEN TX.9='                        '
  1816. IF TX.10=' ' THEN TX.10='                       '
  1817. IF TX.11=' ' THEN TX.11='                       '
  1818. IF TX.12=' ' THEN TX.12='                       '
  1819. IF TX.13=' ' THEN TX.13='                       '
  1820. TEXT1='B 'CENTER(TX.1' ',23)''
  1821. TEXT2=' 'CENTER(TX.2' ',23)''
  1822. TEXT3=' 'CENTER(TX.3' ',23)''
  1823. TEXT4=' 'CENTER(TX.4' ',23)''
  1824. TEXT5=' 'CENTER(TX.5' ',23)''
  1825. TEXT6=' 'CENTER(TX.6' ',23)''
  1826. TEXT7=' 'CENTER(TX.7' ',23)''
  1827. TEXT8=' 'CENTER(TX.8' ',23)''
  1828. TEXT9=' 'CENTER(TX.9' ',23)''
  1829. TEXT10=' 'CENTER(TX.10' ',23)''
  1830. TEXT11=' 'CENTER(TX.11' ',23)''
  1831. TEXT12=' 'CENTER(TX.12' ',23)''
  1832. TEXT13=' 'CENTER(TX.13' ',23)''
  1833. SIGNAL MOVE
  1834.  
  1835. MOVE:
  1836. IF MNTMV=ST.119*2 & UPPER(ST.117)=NONE THEN DO;TT 'CAYOUR LEGS ARE TOO TIRED TO CONTINUE. YOU STOP FOR A REST!W2';RESTZ=0;SIGNAL RESTED;END
  1837. IF MNTMV=ST.119*2 & MAP<13 THEN DO;TT 'CAYOUR MOUNT IS TIRED AND STOPS FOR A REST!W2';RESTZ=0;SIGNAL RESTED;END
  1838. MNTMV=MNTMV+1
  1839. IF POISONED=YES THEN ST.26=ST.26-1
  1840. IF ST.26<1 THEN SIGNAL YOUDEAD
  1841. ST.160=X
  1842. ST.161=Y
  1843. IF MOVES>0 THEN SIGNAL MOVENEW
  1844. TT 'F0'MPLINE1'CF'
  1845. TT ''MPLINE2'CF'
  1846. TT ''MPLINE3'CF'
  1847. TT ''MPLINE4'CF'
  1848. TT ''MPLINE5'CF'
  1849. TT ''MPLINE6'CF'
  1850. TT ''MPLINE7'CF'
  1851. TT ''MPLINE8'CF'
  1852. TT ''MPLINE9'CF'
  1853. TT ''MPLINE10'CF'
  1854. TT ''MPLINE11'CF'
  1855. TT ''MPLINE12'CF'
  1856. TT ''MPLINE13'CF'
  1857. TT ''MPLINE14'CF'
  1858. TT ''MPLINE15'CF'
  1859. TT ''MPLINE16'CF'
  1860. BB=X
  1861. CC=Y
  1862. IF OLDTEXT=TEXT THEN SIGNAL LOSEIT
  1863. SIGNAL TEXTDO
  1864.  
  1865. MOVENEW:
  1866. IF Y=2 & DRC=UP THEN TT 'F0!2'MPLINE3'CF'
  1867. IF Y=3 & DRC=UP THEN TT 'F0!3'MPLINE4'CF'
  1868. IF Y=4 & DRC=UP THEN TT 'F0!4'MPLINE5'CF'
  1869. IF Y=5 & DRC=UP THEN TT 'F0!5'MPLINE6'CF'
  1870. IF Y=6 & DRC=UP THEN TT 'F0!6'MPLINE7'CF'
  1871. IF Y=7 & DRC=UP THEN TT 'F0!7'MPLINE8'CF'
  1872. IF Y=8 & DRC=UP THEN TT 'F0!8'MPLINE9'CF'
  1873. IF Y=9 & DRC=UP THEN TT 'F0!9'MPLINE10'CF'
  1874. IF Y=10 & DRC=UP THEN TT 'F0!A'MPLINE11'CF'
  1875. IF Y=11 & DRC=UP THEN TT 'F0!B'MPLINE12'CF'
  1876. IF Y=12 & DRC=UP THEN TT 'F0!C'MPLINE13'CF'
  1877. IF Y=13 & DRC=UP THEN TT 'F0!D'MPLINE14'CF'
  1878. IF Y=14 & DRC=UP THEN TT 'F0!E'MPLINE15'CF'
  1879. IF Y=3 & DRC=DWN THEN TT 'F0!1'MPLINE2'CF'
  1880. IF Y=4 & DRC=DWN THEN TT 'F0!2'MPLINE3'CF'
  1881. IF Y=5 & DRC=DWN THEN TT 'F0!3'MPLINE4'CF'
  1882. IF Y=6 & DRC=DWN THEN TT 'F0!4'MPLINE5'CF'
  1883. IF Y=7 & DRC=DWN THEN TT 'F0!5'MPLINE6'CF'
  1884. IF Y=8 & DRC=DWN THEN TT 'F0!6'MPLINE7'CF'
  1885. IF Y=9 & DRC=DWN THEN TT 'F0!7'MPLINE8'CF'
  1886. IF Y=10 & DRC=DWN THEN TT 'F0!8'MPLINE9'CF'
  1887. IF Y=11 & DRC=DWN THEN TT 'F0!9'MPLINE10'CF'
  1888. IF Y=12 & DRC=DWN THEN TT 'F0!A'MPLINE11'CF'
  1889. IF Y=13 & DRC=DWN THEN TT 'F0!B'MPLINE12'CF'
  1890. IF Y=14 & DRC=DWN THEN TT 'F0!C'MPLINE13'CF'
  1891. IF Y=15 & DRC=DWN THEN TT 'F0!D'MPLINE14'CF' 
  1892. IF Y=2 THEN TT 'F0!1'MPLINE2'CF'
  1893. IF Y=3 THEN TT 'F0!2'MPLINE3'CF'
  1894. IF Y=4 THEN TT 'F0!3'MPLINE4'CF'
  1895. IF Y=5 THEN TT 'F0!4'MPLINE5'CF'
  1896. IF Y=6 THEN TT 'F0!5'MPLINE6'CF'
  1897. IF Y=7 THEN TT 'F0!6'MPLINE7'CF'
  1898. IF Y=8 THEN TT 'F0!7'MPLINE8'CF'
  1899. IF Y=9 THEN TT 'F0!8'MPLINE9'CF'
  1900. IF Y=10 THEN TT 'F0!9'MPLINE10'CF'
  1901. IF Y=11 THEN TT 'F0!A'MPLINE11'CF'
  1902. IF Y=12 THEN TT 'F0!B'MPLINE12'CF'
  1903. IF Y=13 THEN TT 'F0!C'MPLINE13'CF'
  1904. IF Y=14 THEN TT 'F0!D'MPLINE14'CF'
  1905. IF Y=15 THEN TT 'F0!E'MPLINE15'CF'
  1906. BB=X
  1907. CC=Y
  1908. IF OLDTEXT=TEXT THEN SIGNAL LOSEIT
  1909. SIGNAL TEXTDO
  1910.  
  1911. TEXTDO:
  1912. TT 'F0'TEXT1
  1913. TT ''TEXT2
  1914. TT ''TEXT3
  1915. TT ''TEXT4
  1916. TT ''TEXT5
  1917. TT ''TEXT6
  1918. TT ''TEXT7
  1919. TT ''TEXT8
  1920. TT ''TEXT9
  1921. TT ''TEXT10
  1922. TT ''TEXT11
  1923. TT ''TEXT12
  1924. TT ''TEXT13
  1925. OLDTEXT=TEXT
  1926. IF MOUNDEW=YES THEN DO;TT 'F0'MLN1;TT 'F0'MLN2;TT 'F0'MLN3;END
  1927. MOUNDEW=NO
  1928. SIGNAL LOSEIT
  1929.  
  1930. LOSEIT:
  1931. GETUSER 1200032
  1932. YTIME=RESULT
  1933. BTIME=YTIME/10
  1934. IF BTIME>=TLIMIT THEN DO;TT 'CAF1N6YOU HAVE EXCEEDED YOUR TIME LIMIT THIS TURN!W2';SIGNAL QUIT;END
  1935. CTIME=TLIMIT-BTIME
  1936. IF SPELLA>0 THEN DO;DAM=MAP;DAX=X;DAY=Y;END
  1937. IF SPELLB=1 & FLY=YES THEN DO;FLY=NO;ST.162=0;SPELLB=0;TT 'F0BCAYOUR FLY SPELL WEARS OFF!W2';END
  1938. IF SPELLB=1 & WALK=YES THEN DO;WALK=NO;SPELLB=0;TT 'F0BCAYOUR WATER WALKING SPELL WEARS OFF!W2';END
  1939. IF SPELLC=1 THEN DO;SPELLC=0;TUNNEL=NO;TT 'F0BC9YOUR TUNNEL SPELL WORE OFF!W2';END
  1940. SPELLA=SPELLA-1
  1941. SPELLB=SPELLB-1
  1942. SPELLC=SPELLC-1
  1943. IF SPELLA<0 THEN SPELLA=0
  1944. IF SPELLB<0 THEN SPELLB=0
  1945. IF SPELLC<0 THEN SPELLC=0
  1946. DO;MAD='BCC9MAP:CF'DAM'C0XX';XAD='BCCCX:CE'DAX'C0XX';YAD='BCCAY:CB'DAY'C0XX';END
  1947. DO;MRD='BCC0XXXXXXXXX';XRD='BCC0XXXXXXXXX';YRD='BCC0XXXXXXXXX';END
  1948. DO;SPLA='BCCF'SPELLA'C0XX';SPLB='BCCE'SPELLB'C0XX';SPLC='BCCB'SPELLC'C0XX';END
  1949. DO;SPLX='BCC0'XXXXX;SPLY='BCC0'XXXXX;SPLZ='BCC0'XXXXX;END
  1950. IF SPELLA>0 THEN TT 'F0'SPLA
  1951. IF SPELLB>0 THEN TT 'F0'SPLB
  1952. IF SPELLC>0 THEN TT 'F0'SPLC
  1953. IF SPELLA=1 THEN TT 'F0'SPLX
  1954. IF SPELLB=1 THEN TT 'F0'SPLB
  1955. IF SPELLC=1 THEN TT 'F0'SPLZ
  1956. IF DAM~=' ' & SPELLA>1 THEN DO;TT 'F0'MAD;TT 'F0'XAD;TT 'F0'YAD;END
  1957. IF DAM~=' ' & SPELLA=1 THEN DO;TT 'F0'MRD;TT 'F0'XRD;TT 'F0'YRD;END
  1958. SX 'F0BC9(C6MINUTES LEFT CF'CTIME'C9)C0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXD '
  1959. GETCHAR
  1960. RSP=UPPER(RESULT);TT RSP
  1961. IF RSP=p THEN CALL QUIT
  1962. IF RSP='/' THEN SIGNAL CAMP
  1963. IF RSP='1' THEN DO;X=X-1;Y=Y+1;DRC=DWN;END
  1964. IF RSP='3' THEN DO;X=X+1;Y=Y+1;DRC=DWN;END
  1965. IF RSP='7' THEN DO;X=X-1;Y=Y-1;DRC=UP;END
  1966. IF RSP='9' THEN DO;Y=Y-1;X=X+1;DRC=UP;END
  1967. IF RSP='2' THEN DO;Y=Y+1;DRC=DWN;END
  1968. IF RSP='4' THEN DO;X=X-1;DRC=SME;END
  1969. IF RSP='6' THEN DO;X=X+1;DRC=SME;END
  1970. IF RSP='8' THEN DO;Y=Y-1;DRC=UP;END
  1971. IF RSP='5' THEN SIGNAL REFRESHMAP
  1972. IF RSP='X' THEN DO;ST.162=0;SIGNAL QUIT1;END
  1973. IF RSP='' THEN SIGNAL MOVE
  1974. IF RSP='C' THEN SIGNAL SPLLCST
  1975. IF RSP='H' THEN SIGNAL HELPWQ
  1976. IF RSP='U' THEN SIGNAL USEITEM1
  1977. IF RSP='V' THEN SIGNAL VIEWCHAR
  1978. IF RSP='S' THEN DO;TEXT=SAVING;DOODLE=YES;SIGNAL SAVESTATS;END
  1979. IF RSP='' THEN SIGNAL HOT
  1980. IF RSP='R' THEN SIGNAL RESTED
  1981. IF RSP='O' THEN SIGNAL SPELLBOOK
  1982. IF RSP='L' THEN SIGNAL LAND
  1983. IF RSP='F' THEN SIGNAL FLY
  1984. IF RSP='D' THEN SIGNAL DROP
  1985. IF RSP='N' THEN SIGNAL NOTEBOOK
  1986. IF RSP='P' THEN SIGNAL PIXON1
  1987. MOVES=MOVES+1
  1988. IF MOVES=8 THEN SIGNAL MONSTERMAYBE
  1989. IF MOVES=16 THEN SIGNAL MONSTERMAYBE
  1990. IF MOVES=24 THEN SIGNAL MONSTERMAYBE
  1991. IF MOVES=32 THEN SIGNAL MONSTERMAYBE
  1992. IF MOVES=40 THEN DO;MOVES=0;SIGNAL MONSTERMAYBE;END
  1993. SIGNAL MAPCALL
  1994.  
  1995. PIXON1:
  1996. IF ST.127=ON THEN DO;ST.127=OFF;TT 'F0BC9PICTURES NOW OFF!W2';SIGNAL XMOVE;END
  1997. IF ST.127=OFF THEN DO;ST.127=ON;TT 'F0BC9PICTURES NOW ON!W2';SIGNAL XMOVE;END
  1998.  
  1999. HELPWQ:
  2000. TT 'F1'
  2001. SFI SPATH||'HELPED'
  2002. TT 'C1                                     ...HIT A KEY TO GO ONG1'
  2003. SIGNAL SHUFFLE
  2004.  
  2005. DROP:
  2006. IF ITEM.1=' ' THEN DO;TT 'N1CATHERE IS NOTHING IN YOUR BACKPACK!W2';SIGNAL SHUFFLE;END
  2007. TT 'F1N2CEREMEMBER THAT DROPPING AN ITEM ONTO AN EXISTING ITEM WILL CAUSE THE'
  2008. TT 'FIRST ITEM TO MAGICALLY DISAPPEAR. IN-OTHER-WORDS, ONE ITEM PER SPACE AND'
  2009. TT 'C9BEWARECE THAT ANYONE MAY PICK UP YOUR DROPPED ITEMS...'
  2010. TT 'N2CB1. CA' LEFT(ITEM.1' ',40)'CBAMOUNT:CA' AMOUNT.1
  2011. IF ITEM.2~=' ' THEN TT 'CB2. CA' LEFT(ITEM.2' ',40)'CBAMOUNT:CA' AMOUNT.2
  2012. IF ITEM.3~=' ' THEN TT 'CB3. CA' LEFT(ITEM.3' ',40)'CBAMOUNT:CA' AMOUNT.3
  2013. IF ITEM.4~=' ' THEN TT 'CB4. CA' LEFT(ITEM.4' ',40)'CBAMOUNT:CA' AMOUNT.4
  2014. IF ITEM.5~=' ' THEN TT 'CB5. CA' LEFT(ITEM.5' ',40)'CBAMOUNT:CA' AMOUNT.5
  2015. IF ITEM.6~=' ' THEN TT 'CB6. CA' LEFT(ITEM.6' ',40)'CBAMOUNT:CA' AMOUNT.6
  2016. IF ITEM.7~=' ' THEN TT 'CB7. CA' LEFT(ITEM.7' ',40)'CBAMOUNT:CA' AMOUNT.7
  2017. IF ITEM.8~=' ' THEN TT 'CB8. CA' LEFT(ITEM.8' ',40)'CBAMOUNT:CA' AMOUNT.8
  2018. IF ITEM.9~=' ' THEN TT 'CB9. CA' LEFT(ITEM.9' ',40)'CBAMOUNT:CA' AMOUNT.9
  2019. IF ITEM.10~=' ' THEN TT 'CB10. CA' LEFT(ITEM.10' ',40)'CBAMOUNT:CA' AMOUNT.10
  2020. QUERY 'N1CFWHAT C9# CFDO YOU WANT TO DROP? '
  2021. DRPT=UPPER(RESULT)
  2022. IF DRPT=p THEN SIGNAL QUIT
  2023. IF DRPT='Q' THEN SIGNAL SHUFFLE
  2024. AMOUNT.DRPT=AMOUNT.DRPT-1
  2025. ITEMDR=ITEM.DRPT
  2026. IF AMOUNT.DRPT=0 THEN DO;ITEM.DRPT=' ';VALUE.DRPT=' ';AMOUNT.DRPT=' ';WEIGHT.DRPT=' ';END
  2027. IF ITEM.DRPT=' ' THEN SIGNAL MOVEUP
  2028. SIGNAL SAVITALL
  2029.  
  2030. MOVEUP:
  2031. IF ITEM.1=' ' THEN DO;ITEM.1=ITEM.2;WEIGHT.1=WEIGHT.2;VALUE.1=VALUE.2;AMOUNT.1=AMOUNT.2;ITEM.2=' ';END
  2032. IF ITEM.2=' ' THEN DO;ITEM.2=ITEM.3;WEIGHT.2=WEIGHT.3;VALUE.2=VALUE.3;AMOUNT.2=AMOUNT.3;ITEM.3=' ';END
  2033. IF ITEM.3=' ' THEN DO;ITEM.3=ITEM.4;WEIGHT.3=WEIGHT.4;VALUE.3=VALUE.4;AMOUNT.3=AMOUNT.4;ITEM.4=' ';END
  2034. IF ITEM.4=' ' THEN DO;ITEM.4=ITEM.5;WEIGHT.4=WEIGHT.5;VALUE.4=VALUE.5;AMOUNT.4=AMOUNT.5;ITEM.5=' ';END
  2035. IF ITEM.5=' ' THEN DO;ITEM.5=ITEM.6;WEIGHT.5=WEIGHT.6;VALUE.5=VALUE.6;AMOUNT.5=AMOUNT.6;ITEM.6=' ';END
  2036. IF ITEM.6=' ' THEN DO;ITEM.6=ITEM.7;WEIGHT.6=WEIGHT.7;VALUE.6=VALUE.7;AMOUNT.6=AMOUNT.7;ITEM.7=' ';END
  2037. IF ITEM.7=' ' THEN DO;ITEM.7=ITEM.8;WEIGHT.7=WEIGHT.8;VALUE.7=VALUE.8;AMOUNT.7=AMOUNT.8;ITEM.8=' ';END
  2038. IF ITEM.8=' ' THEN DO;ITEM.8=ITEM.9;WEIGHT.8=WEIGHT.9;VALUE.8=VALUE.9;AMOUNT.8=AMOUNT.9;ITEM.9=' ';END
  2039. IF ITEM.9=' ' THEN DO;ITEM.9=ITEM.10;WEIGHT.9=WEIGHT.10;VALUE.9=VALUE.10;AMOUNT.9=AMOUNT.10;ITEM.10=' ';END
  2040. IF ITEM.9=' ' THEN DO;ITEM.10='';WEIGHT.10='';VALUE.10='';AMOUNT.10='';END
  2041. IF DELSIT=YES THEN DO;DELSIT=NO;SIGNAL DEALER;END
  2042. IF COMBTER=YES THEN SIGNAL CLLSPLL
  2043. IF CMBTER=YES THEN SIGNAL CALLSPELL
  2044. SIGNAL SAVITALL
  2045.  
  2046. SAVITALL:
  2047. CALL OPEN(1,DROPATH||MAP,'R')
  2048. DO I=1 TO 350
  2049. LKK.I=READLN(1)
  2050. END
  2051. CALL CLOSE(1)
  2052. LKK.LOC=ITEMDR
  2053. CALL OPEN(1,DROPATH||MAP,'W')
  2054. DO I=1 TO 350
  2055.  CALL WRITELN(1,LKK.I)
  2056. END
  2057. CALL CLOSE(1)
  2058. SIGNAL SHUFFLE
  2059.  
  2060. LAND:
  2061. FLY=NO
  2062. ST.162=0
  2063. TT 'F0BCFYOU FINALLY COME DOWN TO THE GROUND!W2'
  2064. SIGNAL XMOVE
  2065.  
  2066. REFRESHMAP:
  2067. MOVES=0
  2068. BBB=1
  2069. SIGNAL ICON
  2070.  
  2071. NEXTMAP:
  2072. IF MAP=1 & Y>15 THEN DO;Y=2;MAP=2;SIGNAL ICON;END
  2073. IF MAP=2 & Y<2 THEN DO;Y=15;MAP=1;SIGNAL ICON;END
  2074. IF MAP=2 & X<0 THEN DO;X=24;MAP=11;SIGNAL ICON;END
  2075. IF MAP=13 & Y>15 THEN DO;Y=12;X=16;MAP=1;SIGNAL ICON;END
  2076. IF MAP=1 & Y<2 THEN DO;Y=15;MAP=4;SIGNAL ICON;END
  2077. IF MAP=1 & X>24 THEN DO;X=0;MAP=3;SIGNAL ICON;END
  2078. IF MAP=1 & X<0 THEN DO;X=24;MAP=10;SIGNAL ICON;END
  2079. IF MAP=3 & X<0 THEN DO;MAP=1;X=24;SIGNAL ICON;END
  2080. IF MAP=3 & Y<2 THEN DO;MAP=5;Y=15;SIGNAL ICON;END
  2081. IF MAP=4 & Y>15 THEN DO;MAP=1;Y=2;SIGNAL ICON;END
  2082. IF MAP=4 & X>24 THEN DO;MAP=5;X=0;SIGNAL ICON;END
  2083. IF MAP=4 & X<0 THEN DO;MAP=7;X=24;SIGNAL ICON;END
  2084. IF MAP=4 & Y<2 THEN DO;MAP=6;Y=15;SIGNAL ICON;END
  2085. IF MAP=5 & Y>15 THEN DO;MAP=3;Y=2;SIGNAL ICON;END
  2086. IF MAP=5 & X<0 THEN DO;MAP=4;X=24;SIGNAL ICON;END
  2087. IF MAP=6 & Y>15 THEN DO;MAP=4;Y=2;SIGNAL ICON;END
  2088. IF MAP=7 & X>24 THEN DO;X=0;MAP=4;SIGNAL ICON;END
  2089. IF MAP=7 & X<0 THEN DO;X=24;MAP=8;SIGNAL ICON;END
  2090. IF MAP=7 & Y>15 THEN DO;Y=2;MAP=10;SIGNAL ICON;END
  2091. IF MAP=8 & X>24 THEN DO;X=0;MAP=7;SIGNAL ICON;END
  2092. IF MAP=8 & Y>15 THEN DO;Y=2;MAP=9;SIGNAL ICON;END
  2093. IF MAP=9 & X>24 THEN DO;X=0;MAP=10;SIGNAL ICON;END
  2094. IF MAP=9 & Y<2 THEN DO;Y=15;MAP=8;SIGNAL ICON;END
  2095. IF MAP=10 & X>24 THEN DO;X=0;MAP=1;SIGNAL ICON;END
  2096. IF MAP=10 & X<0 THEN DO;X=24;MAP=9;SIGNAL ICON;END
  2097. IF MAP=10 & Y<2 THEN DO;Y=15;MAP=7;SIGNAL ICON;END
  2098. IF MAP=10 & Y>15 THEN DO;Y=2;MAP=11;SIGNAL ICON;END
  2099. IF MAP=11 & X>24 THEN DO;X=0;MAP=2;SIGNAL ICON;END
  2100. IF MAP=11 & Y>15 THEN DO;Y=2;MAP=12;SIGNAL ICON;END
  2101. IF MAP=11 & Y<2 THEN DO;Y=15;MAP=10;SIGNAL ICON;END
  2102. IF MAP=12 & Y<2 THEN DO;Y=15;MAP=11;SIGNAL ICON;END
  2103. IF MAP=31 & Y>15 THEN DO;Y=3;X=17;MAP=6;SIGNAL ICON;END
  2104. IF X>24 | Y>15 | Y<2 | X<0 THEN SIGNAL BUMPBACK
  2105. SIGNAL ICON
  2106.  
  2107. MAPCALL:
  2108. IF MAP<13 & X<0 THEN SIGNAL NEXTMAP
  2109. IF MAP<14 & Y>15 THEN SIGNAL NEXTMAP
  2110. IF MAP<13 & X>24 THEN SIGNAL NEXTMAP
  2111. IF MAP<13 & Y<2 THEN SIGNAL NEXTMAP
  2112. IF MAP=31 & Y>15 THEN SIGNAL NEXTMAP
  2113. IF X>24 | Y>15 | Y<2 | X<0 THEN SIGNAL BUMPBACK
  2114. IF Y=2 & X<13 THEN SIGNAL Y2
  2115. IF Y=2 THEN SIGNAL Y21
  2116. IF Y=3 & X<13 THEN SIGNAL Y3
  2117. IF Y=3 THEN SIGNAL Y31
  2118. IF Y=4 & X<13 THEN SIGNAL Y4
  2119. IF Y=4 THEN SIGNAL Y41
  2120. IF Y=5 & X<13 THEN SIGNAL Y5
  2121. IF Y=5 THEN SIGNAL Y51
  2122. IF Y=6 & X<13 THEN SIGNAL Y6
  2123. IF Y=6 THEN SIGNAL Y61
  2124. IF Y=7 & X<13 THEN SIGNAL Y7
  2125. IF Y=7 THEN SIGNAL Y71
  2126. IF Y=8 & X<13 THEN SIGNAL Y8
  2127. IF Y=8 THEN SIGNAL Y81
  2128. IF Y=9 & X<13 THEN SIGNAL Y9
  2129. IF Y=9 THEN SIGNAL Y91
  2130. IF Y=10 & X<13 THEN SIGNAL Y10
  2131. IF Y=10 THEN SIGNAL Y101
  2132. IF Y=11 & X<13 THEN SIGNAL Y11
  2133. IF Y=11 THEN SIGNAL Y111
  2134. IF Y=12 & X<13 THEN SIGNAL Y12
  2135. IF Y=12 THEN SIGNAL Y121
  2136. IF Y=13 & X<13 THEN SIGNAL Y13
  2137. IF Y=13 THEN SIGNAL Y131
  2138. IF Y=14 & X<13 THEN SIGNAL Y14
  2139. IF Y=14 THEN SIGNAL Y141
  2140. IF Y=15 & X<13 THEN SIGNAL Y15
  2141. IF Y=15 THEN SIGNAL Y151
  2142.  
  2143. Y2:
  2144. IF X=0 THEN LOC=1
  2145. IF X=1 THEN LOC=2
  2146. IF X=2 THEN LOC=3
  2147. IF X=3 THEN LOC=4
  2148. IF X=4 THEN LOC=5
  2149. IF X=5 THEN LOC=6
  2150. IF X=6 THEN LOC=7
  2151. IF X=7 THEN LOC=8
  2152. IF X=8 THEN LOC=9
  2153. IF X=9 THEN LOC=10
  2154. IF X=10 THEN LOC=11
  2155. IF X=11 THEN LOC=12
  2156. IF X=12 THEN LOC=13
  2157. SIGNAL MIPSIT
  2158.  
  2159. Y21:
  2160. IF X=13 THEN LOC=14
  2161. IF X=14 THEN LOC=15
  2162. IF X=15 THEN LOC=16
  2163. IF X=16 THEN LOC=17
  2164. IF X=17 THEN LOC=18
  2165. IF X=18 THEN LOC=19
  2166. IF X=19 THEN LOC=20
  2167. IF X=20 THEN LOC=21
  2168. IF X=21 THEN LOC=22
  2169. IF X=22 THEN LOC=23
  2170. IF X=23 THEN LOC=24
  2171. IF X=24 THEN LOC=25
  2172. SIGNAL MIPSIT
  2173.  
  2174. Y3:
  2175. IF X=0 THEN LOC=26    /* AREA CATCH */
  2176. IF X=1 THEN LOC=27
  2177. IF X=2 THEN LOC=28
  2178. IF X=3 THEN LOC=29
  2179. IF X=4 THEN LOC=30
  2180. IF X=5 THEN LOC=31
  2181. IF X=6 THEN LOC=32
  2182. IF X=7 THEN LOC=33
  2183. IF X=8 THEN LOC=34
  2184. IF X=9 THEN LOC=35
  2185. IF X=10 THEN LOC=36
  2186. IF X=11 THEN LOC=37
  2187. IF X=12 THEN LOC=38
  2188. SIGNAL MIPSIT
  2189.  
  2190. Y31:
  2191. IF X=13 THEN LOC=39
  2192. IF X=14 THEN LOC=40
  2193. IF X=15 THEN LOC=41
  2194. IF X=16 THEN LOC=42
  2195. IF X=17 THEN LOC=43
  2196. IF X=18 THEN LOC=44
  2197. IF X=19 THEN LOC=45
  2198. IF X=20 THEN LOC=46
  2199. IF X=21 THEN LOC=47
  2200. IF X=22 THEN LOC=48
  2201. IF X=23 THEN LOC=49
  2202. IF X=24 THEN LOC=50
  2203. SIGNAL MIPSIT
  2204.  
  2205. Y4:
  2206. IF X=0 THEN LOC=51
  2207. IF X=1 THEN LOC=52
  2208. IF X=2 THEN LOC=53
  2209. IF X=3 THEN LOC=54
  2210. IF X=4 THEN LOC=55
  2211. IF X=5 THEN LOC=56
  2212. IF X=6 THEN LOC=57
  2213. IF X=7 THEN LOC=58
  2214. IF X=8 THEN LOC=59
  2215. IF X=9 THEN LOC=60
  2216. IF X=10 THEN LOC=61
  2217. IF X=11 THEN LOC=62
  2218. IF X=12 THEN LOC=63
  2219. SIGNAL MIPSIT
  2220.  
  2221. Y41:
  2222. IF X=13 THEN LOC=64
  2223. IF X=14 THEN LOC=65
  2224. IF X=15 THEN LOC=66
  2225. IF X=16 THEN LOC=67
  2226. IF X=17 THEN LOC=68
  2227. IF X=18 THEN LOC=69
  2228. IF X=19 THEN LOC=70
  2229. IF X=20 THEN LOC=71
  2230. IF X=21 THEN LOC=72
  2231. IF X=22 THEN LOC=73
  2232. IF X=23 THEN LOC=74
  2233. IF X=24 THEN LOC=75
  2234. SIGNAL MIPSIT
  2235.  
  2236. Y5:
  2237. IF X=0 THEN LOC=76
  2238. IF X=1 THEN LOC=77
  2239. IF X=2 THEN LOC=78
  2240. IF X=3 THEN LOC=79
  2241. IF X=4 THEN LOC=80
  2242. IF X=5 THEN LOC=81
  2243. IF X=6 THEN LOC=82
  2244. IF X=7 THEN LOC=83
  2245. IF X=8 THEN LOC=84
  2246. IF X=9 THEN LOC=85
  2247. IF X=10 THEN LOC=86
  2248. IF X=11 THEN LOC=87
  2249. IF X=12 THEN LOC=88
  2250. SIGNAL MIPSIT
  2251.  
  2252. Y51:
  2253. IF X=13 THEN LOC=89
  2254. IF X=14 THEN LOC=90
  2255. IF X=15 THEN LOC=91
  2256. IF X=16 THEN LOC=92
  2257. IF X=17 THEN LOC=93
  2258. IF X=18 THEN LOC=94
  2259. IF X=19 THEN LOC=95
  2260. IF X=20 THEN LOC=96
  2261. IF X=21 THEN LOC=97
  2262. IF X=22 THEN LOC=98
  2263. IF X=23 THEN LOC=99
  2264. IF X=24 THEN LOC=100
  2265. SIGNAL MIPSIT
  2266.  
  2267. Y6:
  2268. IF X=0 THEN LOC=101
  2269. IF X=1 THEN LOC=102
  2270. IF X=2 THEN LOC=103
  2271. IF X=3 THEN LOC=104
  2272. IF X=4 THEN LOC=105
  2273. IF X=5 THEN LOC=106
  2274. IF X=6 THEN LOC=107
  2275. IF X=7 THEN LOC=108
  2276. IF X=8 THEN LOC=109
  2277. IF X=9 THEN LOC=110
  2278. IF X=10 THEN LOC=111
  2279. IF X=11 THEN LOC=112
  2280. IF X=12 THEN LOC=113
  2281. SIGNAL MIPSIT
  2282.  
  2283. Y61:
  2284. IF X=13 THEN LOC=114
  2285. IF X=14 THEN LOC=115
  2286. IF X=15 THEN LOC=116
  2287. IF X=16 THEN LOC=117
  2288. IF X=17 THEN LOC=118
  2289. IF X=18 THEN LOC=119
  2290. IF X=19 THEN LOC=120
  2291. IF X=20 THEN LOC=121
  2292. IF X=21 THEN LOC=122
  2293. IF X=22 THEN LOC=123
  2294. IF X=23 THEN LOC=124
  2295. IF X=24 THEN LOC=125
  2296. SIGNAL MIPSIT
  2297.  
  2298. Y7:
  2299. IF X=0 THEN LOC=126    /* AREA CATCH */
  2300. IF X=1 THEN LOC=127
  2301. IF X=2 THEN LOC=128
  2302. IF X=3 THEN LOC=129
  2303. IF X=4 THEN LOC=130
  2304. IF X=5 THEN LOC=131
  2305. IF X=6 THEN LOC=132
  2306. IF X=7 THEN LOC=133
  2307. IF X=8 THEN LOC=134
  2308. IF X=9 THEN LOC=135
  2309. IF X=10 THEN LOC=136
  2310. IF X=11 THEN LOC=137
  2311. IF X=12 THEN LOC=138
  2312. SIGNAL MIPSIT
  2313.  
  2314. Y71:
  2315. IF X=13 THEN LOC=139
  2316. IF X=14 THEN LOC=140
  2317. IF X=15 THEN LOC=141
  2318. IF X=16 THEN LOC=142
  2319. IF X=17 THEN LOC=143
  2320. IF X=18 THEN LOC=144
  2321. IF X=19 THEN LOC=145
  2322. IF X=20 THEN LOC=146
  2323. IF X=21 THEN LOC=147
  2324. IF X=22 THEN LOC=148
  2325. IF X=23 THEN LOC=149
  2326. IF X=24 THEN LOC=150
  2327. SIGNAL MIPSIT
  2328.  
  2329. Y8:
  2330. IF X=0 THEN LOC=151
  2331. IF X=1 THEN LOC=152
  2332. IF X=2 THEN LOC=153
  2333. IF X=3 THEN LOC=154
  2334. IF X=4 THEN LOC=155
  2335. IF X=5 THEN LOC=156
  2336. IF X=6 THEN LOC=157
  2337. IF X=7 THEN LOC=158
  2338. IF X=8 THEN LOC=159
  2339. IF X=9 THEN LOC=160
  2340. IF X=10 THEN LOC=161
  2341. IF X=11 THEN LOC=162
  2342. IF X=12 THEN LOC=163
  2343. SIGNAL MIPSIT
  2344.  
  2345. Y81:
  2346. IF X=13 THEN LOC=164
  2347. IF X=14 THEN LOC=165
  2348. IF X=15 THEN LOC=166
  2349. IF X=16 THEN LOC=167
  2350. IF X=17 THEN LOC=168
  2351. IF X=18 THEN LOC=169
  2352. IF X=19 THEN LOC=170
  2353. IF X=20 THEN LOC=171
  2354. IF X=21 THEN LOC=172
  2355. IF X=22 THEN LOC=173
  2356. IF X=23 THEN LOC=174
  2357. IF X=24 THEN LOC=175
  2358. SIGNAL MIPSIT
  2359.  
  2360. Y9:
  2361. IF X=0 THEN LOC=176
  2362. IF X=1 THEN LOC=177
  2363. IF X=2 THEN LOC=178
  2364. IF X=3 THEN LOC=179
  2365. IF X=4 THEN LOC=180
  2366. IF X=5 THEN LOC=181
  2367. IF X=6 THEN LOC=182
  2368. IF X=7 THEN LOC=183
  2369. IF X=8 THEN LOC=184
  2370. IF X=9 THEN LOC=185
  2371. IF X=10 THEN LOC=186
  2372. IF X=11 THEN LOC=187
  2373. IF X=12 THEN LOC=188
  2374. SIGNAL MIPSIT
  2375.  
  2376. Y91:
  2377. IF X=13 THEN LOC=189
  2378. IF X=14 THEN LOC=190
  2379. IF X=15 THEN LOC=191
  2380. IF X=16 THEN LOC=192
  2381. IF X=17 THEN LOC=193
  2382. IF X=18 THEN LOC=194
  2383. IF X=19 THEN LOC=195
  2384. IF X=20 THEN LOC=196
  2385. IF X=21 THEN LOC=197
  2386. IF X=22 THEN LOC=198
  2387. IF X=23 THEN LOC=199
  2388. IF X=24 THEN LOC=200
  2389. SIGNAL MIPSIT
  2390.  
  2391. Y10:
  2392. IF X=0 THEN LOC=201
  2393. IF X=1 THEN LOC=202
  2394. IF X=2 THEN LOC=203
  2395. IF X=3 THEN LOC=204
  2396. IF X=4 THEN LOC=205
  2397. IF X=5 THEN LOC=206
  2398. IF X=6 THEN LOC=207
  2399. IF X=7 THEN LOC=208
  2400. IF X=8 THEN LOC=209
  2401. IF X=9 THEN LOC=210
  2402. IF X=10 THEN LOC=211
  2403. IF X=11 THEN LOC=212
  2404. IF X=12 THEN LOC=213
  2405. SIGNAL MIPSIT
  2406.  
  2407. Y101:
  2408. IF X=13 THEN LOC=214
  2409. IF X=14 THEN LOC=215
  2410. IF X=15 THEN LOC=216
  2411. IF X=16 THEN LOC=217
  2412. IF X=17 THEN LOC=218
  2413. IF X=18 THEN LOC=219
  2414. IF X=19 THEN LOC=220
  2415. IF X=20 THEN LOC=221
  2416. IF X=21 THEN LOC=222
  2417. IF X=22 THEN LOC=223
  2418. IF X=23 THEN LOC=224
  2419. IF X=24 THEN LOC=225
  2420. SIGNAL MIPSIT
  2421.  
  2422. Y11:
  2423. IF X=0 THEN LOC=226    /* AREA CATCH */
  2424. IF X=1 THEN LOC=227
  2425. IF X=2 THEN LOC=228
  2426. IF X=3 THEN LOC=229
  2427. IF X=4 THEN LOC=230
  2428. IF X=5 THEN LOC=231
  2429. IF X=6 THEN LOC=232
  2430. IF X=7 THEN LOC=233
  2431. IF X=8 THEN LOC=234
  2432. IF X=9 THEN LOC=235
  2433. IF X=10 THEN LOC=236
  2434. IF X=11 THEN LOC=237
  2435. IF X=12 THEN LOC=238
  2436. SIGNAL MIPSIT
  2437.  
  2438. Y111:
  2439. IF X=13 THEN LOC=239
  2440. IF X=14 THEN LOC=240
  2441. IF X=15 THEN LOC=241
  2442. IF X=16 THEN LOC=242
  2443. IF X=17 THEN LOC=243
  2444. IF X=18 THEN LOC=244
  2445. IF X=19 THEN LOC=245
  2446. IF X=20 THEN LOC=246
  2447. IF X=21 THEN LOC=247
  2448. IF X=22 THEN LOC=248
  2449. IF X=23 THEN LOC=249
  2450. IF X=24 THEN LOC=250
  2451. SIGNAL MIPSIT
  2452.  
  2453. Y12:
  2454. IF X=0 THEN LOC=251
  2455. IF X=1 THEN LOC=252
  2456. IF X=2 THEN LOC=253
  2457. IF X=3 THEN LOC=254
  2458. IF X=4 THEN LOC=255
  2459. IF X=5 THEN LOC=256
  2460. IF X=6 THEN LOC=257
  2461. IF X=7 THEN LOC=258
  2462. IF X=8 THEN LOC=259
  2463. IF X=9 THEN LOC=260
  2464. IF X=10 THEN LOC=261
  2465. IF X=11 THEN LOC=262
  2466. IF X=12 THEN LOC=263
  2467. SIGNAL MIPSIT
  2468.  
  2469. Y121:
  2470. IF X=13 THEN LOC=264
  2471. IF X=14 THEN LOC=265
  2472. IF X=15 THEN LOC=266
  2473. IF X=16 THEN LOC=267
  2474. IF X=17 THEN LOC=268
  2475. IF X=18 THEN LOC=269
  2476. IF X=19 THEN LOC=270
  2477. IF X=20 THEN LOC=271
  2478. IF X=21 THEN LOC=272
  2479. IF X=22 THEN LOC=273
  2480. IF X=23 THEN LOC=274
  2481. IF X=24 THEN LOC=275
  2482. SIGNAL MIPSIT
  2483.  
  2484. Y13:
  2485. IF X=0 THEN LOC=276
  2486. IF X=1 THEN LOC=277
  2487. IF X=2 THEN LOC=278
  2488. IF X=3 THEN LOC=279
  2489. IF X=4 THEN LOC=280
  2490. IF X=5 THEN LOC=281
  2491. IF X=6 THEN LOC=282
  2492. IF X=7 THEN LOC=283
  2493. IF X=8 THEN LOC=284
  2494. IF X=9 THEN LOC=285
  2495. IF X=10 THEN LOC=286
  2496. IF X=11 THEN LOC=287
  2497. IF X=12 THEN LOC=288
  2498. SIGNAL MIPSIT
  2499.  
  2500. Y131:
  2501. IF X=13 THEN LOC=289
  2502. IF X=14 THEN LOC=290
  2503. IF X=15 THEN LOC=291
  2504. IF X=16 THEN LOC=292
  2505. IF X=17 THEN LOC=293
  2506. IF X=18 THEN LOC=294
  2507. IF X=19 THEN LOC=295
  2508. IF X=20 THEN LOC=296
  2509. IF X=21 THEN LOC=297
  2510. IF X=22 THEN LOC=298
  2511. IF X=23 THEN LOC=299
  2512. IF X=24 THEN LOC=300
  2513. SIGNAL MIPSIT
  2514.  
  2515. Y14:
  2516. IF X=0 THEN LOC=301
  2517. IF X=1 THEN LOC=302
  2518. IF X=2 THEN LOC=303
  2519. IF X=3 THEN LOC=304
  2520. IF X=4 THEN LOC=305
  2521. IF X=5 THEN LOC=306
  2522. IF X=6 THEN LOC=307
  2523. IF X=7 THEN LOC=308
  2524. IF X=8 THEN LOC=309
  2525. IF X=9 THEN LOC=310
  2526. IF X=10 THEN LOC=311
  2527. IF X=11 THEN LOC=312
  2528. IF X=12 THEN LOC=313
  2529. SIGNAL MIPSIT
  2530.  
  2531. Y141:
  2532. IF X=13 THEN LOC=314
  2533. IF X=14 THEN LOC=315
  2534. IF X=15 THEN LOC=316
  2535. IF X=16 THEN LOC=317
  2536. IF X=17 THEN LOC=318
  2537. IF X=18 THEN LOC=319
  2538. IF X=19 THEN LOC=320
  2539. IF X=20 THEN LOC=321
  2540. IF X=21 THEN LOC=322
  2541. IF X=22 THEN LOC=323
  2542. IF X=23 THEN LOC=324
  2543. IF X=24 THEN LOC=325
  2544. SIGNAL MIPSIT
  2545.  
  2546. Y15:
  2547. IF X=0 THEN LOC=326    /* AREA CATCH */
  2548. IF X=1 THEN LOC=327
  2549. IF X=2 THEN LOC=328
  2550. IF X=3 THEN LOC=329
  2551. IF X=4 THEN LOC=330
  2552. IF X=5 THEN LOC=331
  2553. IF X=6 THEN LOC=332
  2554. IF X=7 THEN LOC=333
  2555. IF X=8 THEN LOC=334
  2556. IF X=9 THEN LOC=335
  2557. IF X=10 THEN LOC=336
  2558. IF X=11 THEN LOC=337
  2559. IF X=12 THEN LOC=338
  2560. SIGNAL MIPSIT
  2561.  
  2562. Y151:
  2563. IF X=13 THEN LOC=339
  2564. IF X=14 THEN LOC=340
  2565. IF X=15 THEN LOC=341
  2566. IF X=16 THEN LOC=342
  2567. IF X=17 THEN LOC=343
  2568. IF X=18 THEN LOC=344
  2569. IF X=19 THEN LOC=345
  2570. IF X=20 THEN LOC=346
  2571. IF X=21 THEN LOC=347
  2572. IF X=22 THEN LOC=348
  2573. IF X=23 THEN LOC=349
  2574. IF X=24 THEN LOC=350
  2575. SIGNAL MIPSIT
  2576.  
  2577. HEYHERE:
  2578. TT 'F1N3CAHEY! SOMEONE HAS DROPPED ACF' LUUK.LOC 'CAHERE!!'
  2579. SX 'DO YOU WANT TO STICK IT IN YOUR BACKPACK? '
  2580. GETCHAR
  2581. PCKUP=UPPER(RESULT)
  2582. IF PCKUP=p THEN SIGNAL QUIT
  2583. IF PCKUP='Y' THEN SIGNAL GRABBEDIT
  2584. TT 'N1C9OH WELL, MAYBE LATER...W1'
  2585. SIGNAL SHUFFLE
  2586.  
  2587. GRABBEDIT:
  2588. IF EXISTS(1,WPATH||LUUK.LOC)THEN DO;PCKPU=YES;CALL OPEN(1,WPATH||LUUK.LOC,'R');DO I=1 TO 9;MW.I=READLN(1);END;CALL CLOSE(1);SIGNAL WEPICK;END
  2589. CALL OPEN(1,IPATH||LUUK.LOC,'R')
  2590.  DO I=1 TO 10
  2591.  THING.I=READLN(1)
  2592.  END
  2593. CALL CLOSE(1)
  2594. IF LUUK.LOC=ITEM.1 THEN DO;AMOUNT.1=AMOUNT.1+1;SIGNAL SVLUK;END
  2595. IF LUUK.LOC=ITEM.2 THEN DO;AMOUNT.2=AMOUNT.2+1;SIGNAL SVLUK;END
  2596. IF LUUK.LOC=ITEM.3 THEN DO;AMOUNT.3=AMOUNT.3+1;SIGNAL SVLUK;END
  2597. IF LUUK.LOC=ITEM.4 THEN DO;AMOUNT.4=AMOUNT.4+1;SIGNAL SVLUK;END
  2598. IF LUUK.LOC=ITEM.5 THEN DO;AMOUNT.5=AMOUNT.5+1;SIGNAL SVLUK;END
  2599. IF LUUK.LOC=ITEM.6 THEN DO;AMOUNT.6=AMOUNT.6+1;SIGNAL SVLUK;END
  2600. IF LUUK.LOC=ITEM.7 THEN DO;AMOUNT.7=AMOUNT.7+1;SIGNAL SVLUK;END
  2601. IF LUUK.LOC=ITEM.8 THEN DO;AMOUNT.8=AMOUNT.8+1;SIGNAL SVLUK;END
  2602. IF LUUK.LOC=ITEM.9 THEN DO;AMOUNT.9=AMOUNT.9+1;SIGNAL SVLUK;END
  2603. IF LUUK.LOC=ITEM.10 THEN DO;AMOUNT.10=AMOUNT.10+1;SIGNAL SVLUK;END
  2604. IF ITEM.10~=' ' THEN DO;TT 'CAYOUR BACKPACK IS FULL!!W1';SIGNAL SHUFFLE;END
  2605. IF ITEM.1=' ' THEN DO;ITEM.1=LUUK.LOC;WEIGHT.1=THING.2;AMOUNT.1=1;VALUE.1=THING.3;SIGNAL SVLUK;END
  2606. IF ITEM.2=' ' THEN DO;ITEM.2=LUUK.LOC;WEIGHT.2=THING.2;AMOUNT.2=1;VALUE.2=THING.3;SIGNAL SVLUK;END
  2607. IF ITEM.3=' ' THEN DO;ITEM.3=LUUK.LOC;WEIGHT.3=THING.2;AMOUNT.3=1;VALUE.3=THING.3;SIGNAL SVLUK;END
  2608. IF ITEM.4=' ' THEN DO;ITEM.4=LUUK.LOC;WEIGHT.4=THING.2;AMOUNT.4=1;VALUE.4=THING.3;SIGNAL SVLUK;END
  2609. IF ITEM.5=' ' THEN DO;ITEM.5=LUUK.LOC;WEIGHT.5=THING.2;AMOUNT.5=1;VALUE.5=THING.3;SIGNAL SVLUK;END
  2610. IF ITEM.6=' ' THEN DO;ITEM.6=LUUK.LOC;WEIGHT.6=THING.2;AMOUNT.6=1;VALUE.6=THING.3;SIGNAL SVLUK;END
  2611. IF ITEM.7=' ' THEN DO;ITEM.7=LUUK.LOC;WEIGHT.7=THING.2;AMOUNT.7=1;VALUE.7=THING.3;SIGNAL SVLUK;END
  2612. IF ITEM.8=' ' THEN DO;ITEM.8=LUUK.LOC;WEIGHT.8=THING.2;AMOUNT.8=1;VALUE.8=THING.3;SIGNAL SVLUK;END
  2613. IF ITEM.9=' ' THEN DO;ITEM.9=LUUK.LOC;WEIGHT.9=THING.2;AMOUNT.9=1;VALUE.9=THING.3;SIGNAL SVLUK;END
  2614. IF ITEM.10=' ' THEN DO;ITEM.10=LUUK.LOC;WEIGHT.10=THING.2;AMOUNT.10=1;VALUE.10=THING.3;SIGNAL SVLUK;END
  2615.  
  2616. SVLUK:
  2617. LUUK.LOC=' '
  2618. CALL OPEN(1,DROPATH||MAP,'W')
  2619.  DO I=1 TO 350
  2620.  CALL WRITELN(1,LUUK.I)
  2621.  END
  2622. CALL CLOSE(1)
  2623. IF ZED=YES THEN SIGNAL BATTLEOVER
  2624. SIGNAL SHUFFLE
  2625.  
  2626. MIPSIT:
  2627. IF LUUK.LOC~=' ' & ST.162=0 THEN SIGNAL HEYHERE
  2628. IF MIPS.LOC=MO & ST.162>10000 THEN DO;TEXT=MOUNTAIN1;SIGNAL XMOVE;END
  2629. IF MIPS.LOC=MO & ST.162>99 THEN DO;TEXT=MOUNTAIN7;SIGNAL BUMPBACK;END
  2630. IF MIPS.LOC=MO THEN DO;TEXT=MOUNTAIN;SIGNAL BUMPBACK;END
  2631. IF FLY=YES & MAP<13 THEN DO;TEXT=FLYING;SIGNAL XMOVE;END
  2632. IF MIPS.LOC=Q THEN TEXT=CLEAR
  2633. IF MIPS.LOC=TP THEN SIGNAL NEWSPOT
  2634. IF MIPS.LOC=FQ THEN SIGNAL SPECQ
  2635. IF MIPS.LOC=UM THEN TEXT=UNREG
  2636. IF MIPS.LOC=NN THEN SIGNAL FLNEEDED
  2637. IF MIPS.LOC=NX THEN SIGNAL FLGOT
  2638. IF MIPS.LOC=FN THEN SIGNAL RIDDLEDO
  2639. IF MIPS.LOC=' ' THEN TEXT=CLEAR
  2640. IF MIPS.LOC=VZ THEN SIGNAL SPECIALFEATURE3
  2641. IF MIPS.LOC=QS THEN SIGNAL SPECIALFEATURE4
  2642. IF MIPS.LOC=TK & ST.96<20 THEN DO;TEXT=TRSKILL;SIGNAL BUMPBACK;END
  2643. IF MIPS.LOC=TK & ST.96>19 THEN TEXT=TRSKLLS
  2644. IF MIPS.LOC=LI & ST.91<20 THEN TEXT=NOLINT 
  2645. IF MIPS.LOC=L2 & ST.91<30 THEN TEXT=NOLINT1 
  2646. IF MIPS.LOC=L3 & ST.91<50 THEN TEXT=NOLINT2
  2647. IF MIPS.LOC=LI & ST.91>19 THEN SIGNAL LANGUAGE
  2648. IF MIPS.LOC=L2 & ST.91>29 THEN SIGNAL LANGUAGE
  2649. IF MIPS.LOC=L3 & ST.91>49 THEN SIGNAL LANGUAGE
  2650. IF MIPS.LOC=WC THEN DO;TEXT=WCOLUMN;SIGNAL BUMPBACK;END
  2651. IF MIPS.LOC=MC THEN DO;TEXT=MCOLUMN;SIGNAL BUMPBACK;END
  2652. IF MIPS.LOC=ST THEN DO;TEXT=STATUE;SIGNAL BUMPBACK;END
  2653. IF MIPS.LOC=TD THEN DO;TEXT=TRAPDOOR;SIGNAL BUMPBACK;END
  2654. IF MIPS.LOC=FT THEN DO;TEXT=FOUNTAIN;SIGNAL BUMPBACK;END
  2655. IF MIPS.LOC=WD THEN SIGNAL DOOR
  2656. IF MIPS.LOC=MD THEN SIGNAL DOOR
  2657. IF MIPS.LOC=SD THEN SIGNAL DOOR
  2658. IF MIPS.LOC=SB THEN SIGNAL DOOR
  2659. IF MIPS.LOC=GB THEN SIGNAL DOOR
  2660. IF MIPS.LOC=OC & WALK=YES THEN TEXT=WALKER1
  2661. IF MIPS.LOC=RI & WALK=YES THEN TEXT=WALKER2
  2662. IF MIPS.LOC=OC & WALK~=YES THEN DO;TEXT=OCEAN;SIGNAL BUMPBACK;END
  2663. IF MIPS.LOC=RI & WALK~=YES THEN DO;TEXT=RIVER;SIGNAL BUMPBACK;END
  2664. IF MIPS.LOC=WA & TUNNEL~=YES THEN DO;TEXT=WALL;SIGNAL BUMPBACK;END
  2665. IF MIPS.LOC=PI THEN DO;TEXT=PIT;SIGNAL BUMPBACK;END
  2666. IF MIPS.LOC=WR & WALK~=YES;THEN DO;TEXT=WATER;SIGNAL BUMPBACK;END
  2667. IF MIPS.LOC=FO THEN DO;TEXT=FOREST;END
  2668. IF MIPS.LOC=RO THEN DO;TEXT=ROAD;END
  2669. IF MIPS.LOC=D THEN DO;TEXT=DARK;SIGNAL BUMPBACK;END
  2670. IF MIPS.LOC=SP THEN SIGNAL SPECIAL
  2671. IF MIPS.LOC=SE THEN SIGNAL SPECENCOUNTER
  2672. IF MIPS.LOC=RT THEN SIGNAL RANDTRES
  2673. IF MIPS.LOC=T2 THEN SIGNAL RANDTRES1
  2674. IF MIPS.LOC=SF THEN SIGNAL SPECIALFEATURE
  2675. IF MIPS.LOC=SX THEN SIGNAL SPECIALFEATURE1
  2676. IF MIPS.LOC=ZV THEN SIGNAL SPECIALFEATURE2
  2677. IF MIPS.LOC=SW THEN DO;TEXT=SWAMP;END
  2678. IF MIPS.LOC=GL THEN DO;TEXT=GLACIER;END
  2679. IF MIPS.LOC=DO THEN DO;TEXT=DOOR;END
  2680. IF MIPS.LOC=DS THEN DO;TEXT=DSTAIRS;END
  2681. IF MIPS.LOC=US THEN DO;TEXT=USTAIRS;END
  2682. IF MIPS.LOC=MT THEN DO;TEXT=MOAT;SIGNAL BUMPBACK;END
  2683. IF MIPS.LOC=BR THEN DO;TEXT=BRIDGE;END
  2684. IF MIPS.LOC=DE THEN DO;TEXT=DESERT;END
  2685. IF MIPS.LOC=BE THEN DO;TEXT=BEACH;END
  2686. SIGNAL XMOVE
  2687.  
  2688. DOOR:
  2689. IF ATTMPT=3 THEN DO;TT 'F1N5C9YOU HAVE TRIED TOO MANY TIMES! REST A MINUTE!W2';ATTMPT=1;NOPE=YES;SIGNAL BUMPBACK;END
  2690. ATTMPT=ATTMPT+1
  2691. BBB=1
  2692. MOVES=0
  2693. BREAK=ST.10
  2694. IF MIPS.LOC=WD THEN DO;SPECH='IS A';DTYP='WOODEN DOOR';END
  2695. IF MIPS.LOC=MD THEN DO;BREAK=BREAK-1;SPECH='IS A';DTYP='METAL DOOR';END
  2696. IF MIPS.LOC=SD THEN DO;BREAK=BREAK-2;SPECH='IS A';DTYP='STONE DOOR';END
  2697. IF MIPS.LOC=SB THEN DO;BREAK=BREAK-1;SPECH='ARE';DTYP='STEEL BARS';END
  2698. IF MIPS.LOC=GB THEN DO;BREAK=BREAK-2;SPECH='ARE';DTYP='GOLDEN BARS';END
  2699. TT 'F1N5CATHERE 'SPECH' 'DTYP 'CAHERE! HOW ARE YOU GONNA DEAL WITH THIS?'
  2700. SX 'N2   C9BCAEND/BREAK   C9CCAAST UNLOCK   C9PCAICK LOCK   C9LCAEAVEN2CA>>> '
  2701. GETCHAR
  2702. DECS=UPPER(RESULT)
  2703. IF DECS=p THEN SIGNAL QUIT
  2704. IF DECS='L' THEN DO;ATTMPT=1;TT 'CAYOU IGNORE THE' DTYP 'W1';NOPE=YES;SIGNAL BUMPBACK;END
  2705. IF DECS='P' THEN SIGNAL PICKIT
  2706. IF DECS='C' THEN SIGNAL CASTLOCK
  2707. TRYIT=VRND(1,15)
  2708. IF BREAK<TRYIT THEN DO;TT 'N1C9IT WAS JUST MORE THAN YOU COULD HANDLEW1';NOPE=YES;SIGNAL BUMPBACK;END
  2709. TT 'N1CFYOU REALLY NAILED THAT' DTYP'!W1'
  2710. ATTMPT=1
  2711. SIGNAL ICON
  2712.  
  2713. CASTLOCK:
  2714. XX=1
  2715. IF ST.97=NO THEN DO;TT 'C9YOU ARE NOT A SPELLCASTER!W1';SIGNAL DOOR;END
  2716. CALL OPEN(2,BPATH||NAME,'R')
  2717. DO AA=1 TO 45 
  2718.  SPNAME.AA=READLN(2)
  2719.  SPTOTAL.AA=READLN(2)
  2720.  SPAMOUNT.AA=READLN(2)
  2721. END 
  2722. CALL CLOSE(2)
  2723. SIGNAL CASTLOCK1
  2724.  
  2725. CASTLOCK1:
  2726. IF SPNAME.XX~=UNLOCK & XX<45 THEN DO;XX=XX+1;SIGNAL CASTLOCK1;END
  2727. IF SPNAME.XX~=UNLOCK THEN DO;TT 'CAYOU DO NOT HAVE SUCH A SPELL!W1';SIGNAL DOOR;END
  2728. IF SPNAME.XX=UNLOCK & SPAMOUNT.XX<1 THEN DO;TT 'CAYOU ARE OUT OF CFUNLOCKCA SPELLS!W1';SIGNAL DOOR;END
  2729. TT 'CAYOU CAST CFUNLOCK CAAND THE LOCK OPENS!'
  2730. IF SPNAME.XX=UNLOCK THEN SPAMOUNT.XX=SPAMOUNT.XX-1
  2731. CALL OPEN(1,BPATH||NAME,'W')
  2732. DO XX=1 TO 45
  2733.  CALL WRITELN(1,SPNAME.XX)
  2734.  CALL WRITELN(1,SPTOTAL.XX)
  2735.  CALL WRITELN(1,SPAMOUNT.XX)
  2736. END
  2737. CALL CLOSE(1)
  2738. ATTMPT=1
  2739. SIGNAL ICON
  2740.  
  2741. PICKIT:
  2742. PICKED=VRND(1,100)
  2743. IF ST.56<PICKED THEN DO;TT 'N1CBYOUR SKILLS NEED A LITTLE SHARPENING!W1';NOPE=YES;SIGNAL BUMPBACK;END
  2744. TT 'N1CEYOUR SKILLS ARE ENVIABLE!W1'
  2745. ATTMPT=1
  2746. SIGNAL ICON
  2747.  
  2748. RANDTRES:
  2749. IF FUNDS=YES THEN SIGNAL XMOVE
  2750. MS.17=VRND(6,13)
  2751. FUNDS=YES
  2752. MCASH=VRND(1,3)
  2753. SIGNAL BOOTY
  2754.  
  2755. RANDTRES1:
  2756. IF FUNDZ=YES THEN SIGNAL XMOVE
  2757. MS.17=VRND(6,13)
  2758. FUNDZ=YES
  2759. MCASH=VRND(1,3)
  2760. SIGNAL BOOTY
  2761.  
  2762. SPECIALFEATURE:
  2763. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2764. FTRNAME=READLN(1)   /* THIS IS ALL FOR SPECIAL FEATURES LIKE */
  2765. TEXT=READLN(1)      /* WALLS WITH RIDDLE ANSWERS             */
  2766. CALL CLOSE(1)       /* PLANTS, DESKS, EERY FEELINGS, ETC     */
  2767. SIGNAL XMOVE
  2768.  
  2769. LANGUAGE:
  2770. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2771. FTRNAME=READLN(1)   
  2772. TEXT=READLN(1)      
  2773. CALL CLOSE(1)       
  2774. SIGNAL XMOVE
  2775.  
  2776. FLNEEDED:
  2777. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2778. FLNED=READLN(1)
  2779. TEXT=READLN(1)
  2780. TEXT1=READLN(1)
  2781. CALL CLOSE(1)
  2782. IF ST.FLNED~=YES THEN SIGNAL BUMPBACK
  2783. TEXT=TEXT1
  2784. SIGNAL XMOVE
  2785.  
  2786. FLGOT:
  2787. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2788. FLGOT=READLN(1)
  2789. TEXT=READLN(1)
  2790. CALL CLOSE(1)
  2791. ST.FLGOT=YES
  2792. SIGNAL XMOVE
  2793.  
  2794. NEWSPOT:
  2795. MOVES=0
  2796. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2797. XNED=READLN(1)      /* THIS IS ALL FOR SPECIAL FEATURES LIKE */
  2798. YNED=READLN(1)      /* WALLS WITH RIDDLE ANSWERS             */
  2799. CALL CLOSE(1)       /* PLANTS, DESKS, EERY FEELINGS, ETC     */
  2800. ST.160=XNED
  2801. ST.161=YNED
  2802. X=XNED
  2803. Y=YNED
  2804. TEXT=TLPRT
  2805. SIGNAL MAPCALL
  2806.  
  2807. RIDDLEDO:
  2808. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2809. FTRNAME=READLN(1)   /* THIS IS ALL FOR SPECIAL FEATURES LIKE */
  2810. TEXT=READLN(1)      /* WALLS WITH RIDDLES QUESTIONS OR GATEKEEPERS */
  2811. CALL CLOSE(1)   
  2812. CALL OPEN(1,DPATH||TEXT,'R')
  2813. DO I=1 TO 13
  2814. TX.I=READLN(1)
  2815. END
  2816. CALL CLOSE(1)
  2817. TEXT1='B 'CENTER(TX.1' ',23)''
  2818. TEXT2=' 'CENTER(TX.2' ',23)''
  2819. TEXT3=' 'CENTER(TX.3' ',23)''
  2820. TEXT4=' 'CENTER(TX.4' ',23)''
  2821. TEXT5=' 'CENTER(TX.5' ',23)''
  2822. TEXT6=' 'CENTER(TX.6' ',23)''
  2823. TEXT7=' 'CENTER(TX.7' ',23)''
  2824. TEXT8=' 'CENTER(TX.8' ',23)''
  2825. TEXT9=' 'CENTER(TX.9' ',23)''
  2826. TEXT10=' 'CENTER(TX.10' ',23)''
  2827. TEXT11=' 'CENTER(TX.11' ',23)''
  2828. TEXT12=' 'CENTER(TX.12' ',23)''
  2829. TEXT13=' 'CENTER(TX.13' ',23)''
  2830. TT 'F0'TEXT1
  2831. TT ''TEXT2
  2832. TT ''TEXT3
  2833. TT ''TEXT4
  2834. TT ''TEXT5
  2835. TT ''TEXT6
  2836. TT ''TEXT7
  2837. TT ''TEXT8
  2838. TT ''TEXT9
  2839. TT ''TEXT10
  2840. TT ''TEXT11
  2841. TT ''TEXT12
  2842. TT ''TEXT13
  2843. OLDTEXT=TEXT
  2844. QUERY 'F0BC9WHAT IS THE ANSWER TO THIS RIDDLE?C0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDCF '
  2845. RDANS=UPPER(RESULT)
  2846. IF RDANS=p THEN SIGNAL QUIT
  2847. IF RDANS=UPPER(FTRNAME) THEN DO;TEXT=CORRECT;SIGNAL XMOVE;END
  2848. TEXT=WRONG
  2849. SIGNAL BUMPBACK
  2850.  
  2851. SPECIALFEATURE1:
  2852. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2853. FTRNAME=READLN(1)   /* THIS IS ALL FOR SPECIAL FEATURES */
  2854. TEXT=READLN(1)      /* FOR SPECIAL FEATURES THAT HAVE A */
  2855. CALL CLOSE(1)       /* BUMPBACK BUT AREN'T LISTED...    */
  2856. SIGNAL BUMPBACK
  2857.  
  2858. SPECIALFEATURE2:
  2859. IF ST.108~=YES & ST.59<1 THEN DO;TEXT=SKILLNEED;SIGNAL BUMPBACK;END
  2860. IF ST.59>0 THEN CLMB=VRND(1,100)
  2861. IF ST.59>0 & CLMB>ST.59 THEN DO;TEXT=FAIL;SIGNAL BUMPBACK;END
  2862. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2863. FTRNAME=READLN(1)   /* THIS IS ALL FOR  */
  2864. TEXT=READLN(1)      /* FOR SPECIAL FEATURES THAT HAVE A */
  2865. CALL CLOSE(1)       /* NEED TO CLIMB TO GO ON...    */
  2866. SIGNAL XMOVE
  2867.  
  2868. SPECIALFEATURE3:
  2869. IF ST.165<1 THEN SIGNAL TRAPHIT
  2870. TRMISS=VRND(1,100)
  2871. IF TRMISS>ST.165 THEN SIGNAL TRAPHIT
  2872. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2873. FTRNAME=READLN(1)   /* THIS IS ALL FOR */
  2874. TEXT=READLN(1)      /* FOR SPECIAL FEATURES THAT HAVE A */
  2875. CALL CLOSE(1)       /* TRAP */
  2876. SIGNAL XMOVE
  2877.  
  2878. TRAPHIT:
  2879. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2880. FTRNAM=READLN(1)   /* THIS IS ALL FOR */
  2881. TEXT=READLN(1)      /* FOR SPECIAL FEATURES THAT HAVE A */
  2882. CALL CLOSE(1)       /* TRAP */
  2883. DMX1=VRND(5,15)
  2884. DMX2=VRND(1,10)
  2885. DMX3=VRND(3,13)
  2886. DMX4=VRND(10,25)
  2887. DAMX=VRND(5,15)
  2888. IF FTRNAM='FIRE1' THEN DO;TEXT=FIRE;DAMX=DMX1;END
  2889. IF FTRNAM='SPIKES1' THEN DO;TEXT=SPIKES;DAMX=DMX2;END
  2890. IF FTRNAM='PENDULUM1' THEN DO;TEXT=PENDULUM;DAMX=DMX3;END
  2891. IF FTRNAM='ELECTRIC1' THEN DO;TEXT=ELECTRIC;DAMX=DMX4;END
  2892. IF FTRNAM='ELECTRICITY1' THEN DO;TEXT=ELECTRIC;DAMX=DMX4;END
  2893. ST.26=ST.26-DAMX
  2894. SIGNAL XMOVE
  2895.  
  2896. SPECIALFEATURE4:
  2897. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2898. QTYPE=READLN(1)     /* THIS IS ALL FOR */
  2899. QNUM=READLN(1)      /* FOR SPECIAL FEATURES THAT HAVE A */
  2900. CALL CLOSE(1)       /* QUEST */
  2901. IF QTYPE=ST.109 & QNUM=ST.110 THEN DO;TEXT=IMPOSSIBLE;ST.109=YES;END
  2902. IF QTYPE=ST.111 & QNUM=ST.112 THEN DO;TEXT=CLERGY;ST.111=YES;END
  2903. SIGNAL XMOVE
  2904.  
  2905. SPECQ:
  2906. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2907. FQNUM=READLN(1)
  2908. CALL CLOSE(1)
  2909. IF FQNUM=ST.136 THEN SIGNAL YOUWON
  2910. SIGNAL XMOVE
  2911.  
  2912. YOUWON:
  2913. SFI DPATH||'WINNER'
  2914. TT 'G1'
  2915. SFI DPATH||'WINNER1'
  2916. TT 'G1'
  2917. SFI DPATH||'CREDITS'
  2918. TT 'G1'
  2919. CALL OPEN(1,UPATH||'WON','W')
  2920. CALL WRITELN(1,NAME)
  2921. CALL CLOSE(1)
  2922. EL='W'
  2923. IF EXISTS(SPATH||'LORDY')=1 THEN EL='A'
  2924. CALL OPEN(1,SPATH||'LORDY',EL)
  2925. CALL WRITELN(1,NAME)
  2926. CALL WRITELN(1,ST.1)
  2927. CALL WRITELN(1,ST.2)
  2928. CALL WRITELN(1,ST.3)
  2929. CALL WRITELN(1,ST.4)
  2930. CALL CLOSE(1)
  2931. EXIT
  2932.  
  2933. SPECIAL:
  2934. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2935. PLACENAME=READLN(1)
  2936. LOCNUM=READLN(1)
  2937. XPOS=READLN(1)
  2938. YPOS=READLN(1)
  2939. MAPNUM=READLN(1)
  2940. NEWX=READLN(1)
  2941. NEWY=READLN(1)
  2942. CALL CLOSE(1)
  2943. IF MAPNUM=0 THEN SIGNAL MAIN
  2944. DO;MAP=MAPNUM;X=NEWX;Y=NEWY;SIGNAL ICON;END
  2945. SIGNAL XMOVE
  2946.  
  2947. SPECENCOUNTER:
  2948. CALL OPEN(1,PLACEPATH||MAP'/'LOC,'R')
  2949. MONNAME=READLN(1)
  2950. FLAG=READLN(1) /*IN CASE CHARACTER RUNS...WHEN WINS THEN FOUGHT=FLAG*/
  2951. CALL CLOSE(1)
  2952. IF FOUGHT=FLAG THEN SIGNAL XMOVE
  2953. DO;MNX.MXM=MONNAME;SIGNAL LOADMON1;END
  2954. SIGNAL XMOVE
  2955.  
  2956. RUN:
  2957. FOUGHT=0
  2958. TT 'N1CBS1YOU SHOW YOUR COWARDICE BY RUNNING FROM THE BATTLE...S0W1'
  2959. SIGNAL SHUFFLE
  2960.  
  2961. BUMPBACK:
  2962. IF RSP='1' THEN DO;DRC=UP;Y=Y-1;END
  2963. IF RSP='1' THEN X=X+1
  2964. IF RSP='3' THEN DO;DRC=UP;X=X-1;END
  2965. IF RSP='3' THEN Y=Y-1
  2966. IF RSP='7' THEN DO;DRC=DWN;X=X+1;END
  2967. IF RSP='7' THEN Y=Y+1
  2968. IF RSP='9' THEN DO;DRC=DWN;Y=Y+1;END
  2969. IF RSP='9' THEN X=X-1
  2970. IF RSP='2' THEN Y=Y-1
  2971. IF RSP='4' THEN X=X+1
  2972. IF RSP='6' THEN X=X-1
  2973. IF RSP='8' THEN Y=Y+1
  2974. IF NOPE=YES THEN DO;BBB=1;MOVES=0;SIGNAL ICON;END
  2975. SIGNAL XMOVE
  2976.  
  2977. HOT:
  2978. SX ' '
  2979. GETCHAR
  2980. RSP=RESULT
  2981. IF RSP='[' THEN SIGNAL COLD
  2982. SIGNAL COLD
  2983.  
  2984. COLD:
  2985. SX ' '
  2986. GETCHAR
  2987. RXP=UPPER(RESULT)
  2988. IF RXP=p THEN SIGNAL QUIT
  2989. IF RXP='D' THEN DO;X=X-1;RSP=4;DRC=SME;END
  2990. IF RXP='A' THEN DO;Y=Y-1;RSP=8;DRC=UP;END
  2991. IF RXP='B' THEN DO;Y=Y+1;RSP=2;DRC=DWN;END
  2992. IF RXP='C' THEN DO;X=X+1;RSP=6;DRC=SME;END
  2993. MOVES=MOVES+1
  2994. IF MOVES=8 THEN SIGNAL MONSTERMAYBE
  2995. IF MOVES=16 THEN SIGNAL MONSTERMAYBE
  2996. IF MOVES=24 THEN SIGNAL MONSTERMAYBE
  2997. IF MOVES=32 THEN SIGNAL MONSTERMAYBE
  2998. IF MOVES=40 THEN DO;MOVES=0;SIGNAL MONSTERMAYBE;END
  2999. SIGNAL MAPCALL
  3000.  
  3001. DOCREAD:
  3002. SFI MPATH||'DOCS'
  3003. SX 'N1CB(A WISE CHOICE INDEED) INPUT YOUR SELECTIONCA>>> '
  3004. GETCHAR
  3005. DOCS=UPPER(RESULT)
  3006. IF DOCS=p THEN SIGNAL QUIT
  3007. IF DOCS='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  3008. IF DOCS=1 THEN SFI DPATH||'RULES'
  3009. IF DOCS=2 THEN SFI DPATH||'COMMANDS'
  3010. IF DOCS=3 THEN SFI DPATH||'SPECS'
  3011. IF DOCS=4 THEN SFI DPATH||'MAIN'
  3012. SIGNAL DOCREAD
  3013.  
  3014. RESTED:
  3015. MNTMV=0
  3016. IF RESTZ=2 THEN DO;TT 'F1N4S1C9YOU MAY NOT REST MORE THAN 2 TIMES PER TURN!W2S0';MAIN=YES;SIGNAL SHUFFLE;END
  3017. TT 'F1N4S1CCYOU DECIDE TO BED DOWN IN A NEARBY NOOK TO REST FOR 8 HOURS'
  3018. TT 'SO YOU CAN GAIN HEALTH OR ALLOW YOUR SPELLS TO SINK IN.W2S0'
  3019. SPELLA=0
  3020. SPELLB=0
  3021. SPELLC=0
  3022. BRED=NO
  3023. MXSD=VRND(1,20)
  3024. IF MXSD<4 THEN SIGNAL MONSTERCALL
  3025. RESTZ=RESTZ+1
  3026. ST.26=ST.26+2
  3027. IF ST.26>ST.27 THEN ST.26=ST.27
  3028. SD=1
  3029. IF EXISTS(BPATH||NAME) THEN DO;CALL OPEN(1,BPATH||NAME,'R');DO I=1 TO 45;SPNAME.I=READLN(1);SPT.I=READLN(1);SPA.I=READLN(1);END;CALL CLOSE(1);SIGNAL SPELLGAIN;END
  3030. TT 'N1CAYOU WAKE UP ALL REFRESHED AND LUCKY TO BE ALIVE!W1'
  3031. DO;MAIN=YES;SIGNAL SHUFFLE;END
  3032.  
  3033. SPELLGAIN:
  3034. SPA.SD=SPT.SD
  3035. SD=SD+1
  3036. IF SPNAME.SD=' ' THEN DO;TT 'CAAND YOU WAKE UP!!!W1';CALL OPEN(1,BPATH||NAME,'W');DO I=1 TO 45;CALL WRITELN(1,SPNAME.I);CALL WRITELN(1,SPT.I);CALL WRITELN(1,SPA.I);END;CALL CLOSE(1);MAIN=YES;SIGNAL SHUFFLE;END
  3037. SIGNAL SPELLGAIN
  3038.  
  3039. SPELLBOOK:
  3040. IF ST.97=NO THEN DO;TT 'N1C9YOU ARE NOT A SPELLCASTER!W2';MAIN=YES;SIGNAL MAIN;END
  3041. TT 'F1N2CACHOOSING YOUR SPELLS FOR ADVENTURING WILL ERASE ANY SPELL'
  3042. TT 'YOU HAVE PREVIOUSLY REMEMBERED. IN OTHER WORDS YOU WILL HAVE TO'
  3043. TT 'CHOOSE ALL SPELLS NOW AND THEN C9RESTCA TO RETAIN THEM...' 
  3044. TT 'N2CASPELL TYPE:CF' ST.98
  3045. SX 'N1CBDO YOU WISH TO PICK YOUR SPELLS NOW?C9 [Y/N] '
  3046. GETCHAR
  3047. SPLL=UPPER(RESULT)
  3048. IF SPLL=p THEN SIGNAL QUIT
  3049. IF SPLL='N' THEN DO;MAIN=YES;SIGNAL SHUFFLE;END
  3050. IF SPLL='Q' THEN DO;MAIN=YES;SIGNAL SHUFFLE;END
  3051. SIGNAL SPELLPICK
  3052.  
  3053. SPELLPICK:
  3054. L1=DON
  3055. L2=DON
  3056. L3=DON
  3057. L4=DON
  3058. L5=DON
  3059. L6=DON
  3060. L7=DON
  3061. L8=DON
  3062. L11=DON
  3063. L12=DON
  3064. L13=DON
  3065. L14=DON
  3066. L15=DON
  3067. L16=DON
  3068. L17=DON
  3069. L18=DON
  3070. IF EXISTS(BPATH||NAME) THEN DO;ADDRESS COMMAND 'DELETE "'BPATH''NAME'"';END
  3071. IF ST.98=MAGIC | ST.98=BOTH THEN SIGNAL MAGICPICK
  3072. SIGNAL PRIESTPICK
  3073.  
  3074. MAGICPICK:
  3075. IF ST.4>0 & L11=DON THEN DO;LXV=1;SPX=ST.99;CALL OPEN(1,SKPATH||'MAG1','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3076. IF ST.4>2 & L12=DON THEN DO;LXV=2;SPX=ST.100;CALL OPEN(1,SKPATH||'MAG2','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3077. IF ST.4>4 & L13=DON THEN DO;LXV=3;SPX=ST.101;CALL OPEN(1,SKPATH||'MAG3','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3078. IF ST.4>6 & L14=DON THEN DO;LXV=4;SPX=ST.102;CALL OPEN(1,SKPATH||'MAG4','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3079. IF ST.4>8 & L15=DON THEN DO;LXV=5;SPX=ST.103;CALL OPEN(1,SKPATH||'MAG5','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3080. IF ST.4>10 & L16=DON THEN DO;LXV=6;SPX=ST.104;CALL OPEN(1,SKPATH||'MAG6','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3081. IF ST.4>12 & L17=DON THEN DO;LXV=7;SPX=ST.105;CALL OPEN(1,SKPATH||'MAG7','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3082. IF ST.4>14 & L18=DON THEN DO;LXV=8;SPX=ST.106;CALL OPEN(1,SKPATH||'MAG8','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL MAGICMAIN;END
  3083. TT 'N1CATHAT WAS THE HIGHEST LEVEL OF MAGIC SPELL YOU CAN CAST...W1'
  3084. IF ST.98=BOTH THEN SIGNAL PRIESTPICK
  3085. TT 'N1DON''T FORGET YOU MUST C9RESTCA TO RETAIN THE KNOWLEDGE!!!W2'
  3086. DO;MAIN=YES;SIGNAL SHUFFLE;END
  3087.  
  3088. MAGICMAIN:
  3089. IF SPX=0 & LXV=1 THEN DO;L11=DONE;SIGNAL MAGICPICK;END
  3090. IF SPX=0 & LXV=2 THEN DO;L12=DONE;SIGNAL MAGICPICK;END
  3091. IF SPX=0 & LXV=3 THEN DO;L13=DONE;SIGNAL MAGICPICK;END
  3092. IF SPX=0 & LXV=4 THEN DO;L14=DONE;SIGNAL MAGICPICK;END
  3093. IF SPX=0 & LXV=5 THEN DO;L15=DONE;SIGNAL MAGICPICK;END
  3094. IF SPX=0 & LXV=6 THEN DO;L16=DONE;SIGNAL MAGICPICK;END
  3095. IF SPX=0 & LXV=7 THEN DO;L17=DONE;SIGNAL MAGICPICK;END
  3096. IF SPX=0 & LXV=8 THEN DO;L18=DONE;SIGNAL MAGICPICK;END
  3097. TT 'F1N2CAMAGIC SPELL CHOICES FOR LEVELCF' LXV 'CASPELLS'
  3098. TT 'N1CB1. CA'CSP.1 
  3099. TT 'CB2. CA'CSP.2
  3100. TT 'CB3. CA'CSP.3
  3101. IF CSP.4~=' ' THEN TT 'CB4. CA'CSP.4
  3102. IF CSP.5~=' ' THEN TT 'CB5. CA'CSP.5
  3103. IF CSP.6~=' ' THEN TT 'CB6. CA'CSP.6
  3104. TT 'N1CBSPELLS AVAILABLE:CF' SPX
  3105. SX 'N2CESELECT THE C9# CEOF THE SPELL YOU WISH TO LEARN '
  3106. GETCHAR
  3107. PXS=UPPER(RESULT)
  3108. IF PXS=p THEN SIGNAL QUIT
  3109. IF PXS<1 | PXS>6 THEN SIGNAL MAGICMAIN
  3110. IF PXS>0 & PXS<7 THEN SIGNAL MADDIT
  3111. SIGNAL MAGICMAIN
  3112.  
  3113. MADDIT:
  3114. SX 'N1CAAND HOW MANY TIMES DO YOU WISH TO RETAIN IT? '
  3115. GETCHAR
  3116. TOTAL=UPPER(RESULT)
  3117. IF TOTAL>SPX THEN DO;TT 'N1CAYOU CANNOT HAVE THAT MANY SPELLS AT THIS LEVEL!W2';SIGNAL MAGICMAIN;END
  3118. IF TOTAL<1 THEN DO;TT 'N1CAYOU CANNOT LEARN LESS THAN 1 OF ANYTHING!W2';SIGNAL MAGICMAIN;END
  3119. SPX=SPX-TOTAL
  3120. AMOUNT=0
  3121. SB='W'
  3122. IF EXISTS(BPATH||NAME)=1 THEN SB='A'
  3123. CALL OPEN(1,BPATH||NAME,SB)
  3124. CALL WRITELN(1,CSP.PXS)
  3125. CALL WRITELN(1,TOTAL)
  3126. CALL WRITELN(1,AMOUNT)
  3127. CALL CLOSE(1)
  3128. SIGNAL MAGICMAIN
  3129.  
  3130. PRIESTPICK:
  3131. IF ST.4>0 & L1=DON THEN DO;LDV=1;SPXP=ST.81;CALL OPEN(1,SKPATH||'RELI1','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3132. IF ST.4>2 & L2=DON THEN DO;LDV=2;SPXP=ST.82;CALL OPEN(1,SKPATH||'RELI2','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3133. IF ST.4>4 & L3=DON THEN DO;LDV=3;SPXP=ST.83;CALL OPEN(1,SKPATH||'RELI3','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3134. IF ST.4>6 & L4=DON THEN DO;LDV=4;SPXP=ST.84;CALL OPEN(1,SKPATH||'RELI4','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3135. IF ST.4>8 & L5=DON THEN DO;LDV=5;SPXP=ST.85;CALL OPEN(1,SKPATH||'RELI5','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3136. IF ST.4>10 & L6=DON THEN DO;LDV=6;SPXP=ST.86;CALL OPEN(1,SKPATH||'RELI6','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3137. IF ST.4>12 & L7=DON THEN DO;LDV=7;SPXP=ST.87;CALL OPEN(1,SKPATH||'RELI7','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3138. IF ST.4>14 & L8=DON THEN DO;LDV=8;SPXP=ST.88;CALL OPEN(1,SKPATH||'RELI8','R');DO I=1 TO 6;CSP.I=READLN(1);END;CALL CLOSE(1);SIGNAL PRIESTMAIN;END
  3139. TT 'N1CATHAT WAS THE HIGHEST LEVEL OF PRIEST SPELL YOU CAN CAST.N1DON''T FORGET YOU MUST C9REST CATO RETAIN THE KNOWLEDGE!!!W2'
  3140. DO;MAIN=YES;SIGNAL SHUFFLE;END
  3141.  
  3142. PRIESTMAIN:
  3143. IF SPXP=0 & LDV=1 THEN DO;L1=DONE;SIGNAL PRIESTPICK;END
  3144. IF SPXP=0 & LDV=2 THEN DO;L2=DONE;SIGNAL PRIESTPICK;END
  3145. IF SPXP=0 & LDV=3 THEN DO;L3=DONE;SIGNAL PRIESTPICK;END
  3146. IF SPXP=0 & LDV=4 THEN DO;L4=DONE;SIGNAL PRIESTPICK;END
  3147. IF SPXP=0 & LDV=5 THEN DO;L5=DONE;SIGNAL PRIESTPICK;END
  3148. IF SPXP=0 & LDV=6 THEN DO;L6=DONE;SIGNAL PRIESTPICK;END
  3149. IF SPXP=0 & LDV=7 THEN DO;L7=DONE;SIGNAL PRIESTPICK;END
  3150. IF SPXP=0 & LDV=8 THEN DO;L8=DONE;SIGNAL PRIESTPICK;END
  3151. TT 'F1N2CAPRIEST SPELL CHOICES FOR LEVELCF' LDV 'CASPELLS'
  3152. TT 'N1CB1. CA'CSP.1 
  3153. TT 'CB2. CA'CSP.2
  3154. TT 'CB3. CA'CSP.3
  3155. IF CSP.4~=' ' THEN TT 'CB4. CA'CSP.4
  3156. IF CSP.5~=' ' THEN TT 'CB5. CA'CSP.5
  3157. IF CSP.6~=' ' THEN TT 'CB6. CA'CSP.6
  3158. TT 'N1CBSPELLS AVAILABLE:CF' SPXP
  3159. SX 'N2CESELECT THE C9# CEOF THE SPELL YOU WISH TO LEARN '
  3160. GETCHAR
  3161. PXS=UPPER(RESULT)
  3162. IF PXS=p THEN SIGNAL QUIT
  3163. IF PXS<1 | PXS>6 THEN SIGNAL PRIESTMAIN
  3164. IF PXS>0 | PXS<7 THEN SIGNAL PADDIT
  3165. SIGNAL PRIESTMAIN
  3166.  
  3167. PADDIT:
  3168. SX 'N1CAAND HOW MANY TIMES DO YOU WISH TO RETAIN IT? '
  3169. GETCHAR
  3170. TOTAL=UPPER(RESULT)
  3171. IF TOTAL>SPXP THEN DO;TT 'N1CAYOU CANNOT HAVE THAT MANY SPELLS AT THIS LEVEL!W2';SIGNAL PRIESTMAIN;END
  3172. IF TOTAL<1 THEN DO;TT 'N1CAYOU CANNOT LEARN LESS THAN 1 OF ANYTHING!W2';SIGNAL PRIESTMAIN;END
  3173. SPXP=SPXP-TOTAL
  3174. AMOUNT=0
  3175. SB='W'
  3176. IF EXISTS(BPATH||NAME)=1 THEN SB='A'
  3177. CALL OPEN(1,BPATH||NAME,SB)
  3178. CALL WRITELN(1,CSP.PXS)
  3179. CALL WRITELN(1,TOTAL)
  3180. CALL WRITELN(1,AMOUNT)
  3181. CALL CLOSE(1)
  3182. SIGNAL PRIESTMAIN
  3183.  
  3184. ARMORS:
  3185. IF MOGARM=YES THEN DO;MOGARM=NO;SIGNAL MAGICSHOP;END
  3186. BUFFERFLUSH
  3187. IF ST.3=MONK THEN DO;TT 'N1CEMONKS CANNOT WEAR ANY ARMOR AT ALL!W2';MAIN=YES;SIGNAL MAIN;END
  3188. SFI MPATH||'ARMOR'
  3189. TT 'N1                                                            CBGOLD:CF' ST.170
  3190. QUERY 'N1CEWHAT SUIT OF SALAVATION WOULD YOU LIKE?C9 '
  3191. AM=UPPER(RESULT)
  3192. IF AM=p THEN SIGNAL QUIT
  3193. IF AM=' ' THEN DO;MAIN=YES;SIGNAL MAIN;END
  3194. IF AM='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  3195. IF AM<1 | AM>13 THEN DO;TT 'N1CAWHY GOOD SIR THERE IS NO SUCH ARMOR AVAILABLE...W2';SIGNAL ARMORS;END
  3196. CALL OPEN(1,APATH||'ARM','R')
  3197. DO I=1 TO 13
  3198. AMP.I=READLN(1)
  3199. END
  3200. CALL CLOSE(1)
  3201. IF ~EXISTS(APATH||AMP.AM) THEN DO;TT 'C9N1SORRY, I HAVE NONE OF THOSE IN STOCK!W2';SIGNAL ARMORS;END
  3202. CALL OPEN(1,APATH||AMP.AM,'R')
  3203. DO I=1 TO 5
  3204.  AMX.I=READLN(1)
  3205. END
  3206. CALL CLOSE(1)
  3207. SIGNAL ARMLIMIT
  3208.  
  3209. ARMLIMIT:
  3210. IF AM>1 & ST.3=WIZARD THEN SIGNAL NOARM
  3211. IF AM>7 & ST.3=NINJA THEN SIGNAL NOARM
  3212. IF AM>7 & ST.3=ROGUE THEN SIGNAL NOARM
  3213. IF AMX.3>ST.170 THEN DO;TT 'N1CEGET SOME GOLD AND THEN WE''LL TALKW1';SIGNAL ARMORS;END 
  3214. IF AM>10 & ST.33=TWO HANDED SWORD THEN DO;TT 'N1CAYOU CANNOT CARRY A SHIELD AND A TWO HANDED SWORD!W2';SIGNAL ARMORS;END
  3215. IF AM>10 & ST.38~=NONE THEN DO;TT 'N1CAYOU CANNOT CARRY A SHIELD AND A MISSILE WEAPON! SORRY!W2';SIGNAL ARMORS;END
  3216. IF AM>10 THEN SIGNAL SHIELDS
  3217. TT 'N1CF' AMX.1 'CACOSTSCF' AMX.3 'CAGOLD PIECES'
  3218. SX 'CEDO YOU WANT IT?C9 [Y/N] '
  3219. GETCHAR
  3220. HHH=UPPER(RESULT)
  3221. IF HHH=p THEN SIGNAL QUIT
  3222. IF HHH='N' THEN SIGNAL ARMORS
  3223. IF AMX.4+ST.152+ST.151+ST.156>ST.11 THEN SIGNAL TOOHEAVY
  3224. ST.170=ST.170-AMX.3
  3225. ST.153=AMX.4
  3226. ST.31=AMX.1
  3227. ST.30=AMX.2
  3228. AMHOLD=ST.30-ST.15
  3229. ST.32=AMHOLD-ST.129
  3230. SIGNAL ARMORS
  3231.  
  3232. SHIELDS:
  3233. IF AMX.4+ST.151+ST.152+ST.153>ST.11 THEN SIGNAL TOOHEAVY
  3234. TT 'N1CF' AMX.1 'CACOSTSCF' AMX.3 'CAGOLD PIECES'
  3235. SX 'CEDO YOU WANT IT?C9 [Y/N] '
  3236. GETCHAR
  3237. HHH=UPPER(RESULT)
  3238. IF HHH=p THEN SIGNAL QUIT
  3239. IF HHH='N' THEN SIGNAL ARMORS
  3240. TT 'N1CATHANKS...W1'
  3241. IF AM=11 THEN DO;ST.129=1;ST.32=ST.32-1;ST.156=AMX.4;ST.130=AMX.1;ST.170=ST.170-AMX.3;MAIN=YES;SIGNAL MAIN;END
  3242. IF AM=12 THEN DO;ST.129=2;ST.32=ST.32-2;ST.156=AMX.4;ST.130=AMX.1;ST.170=ST.170-AMX.3;MAIN=YES;SIGNAL MAIN;END
  3243. IF AM=13 THEN DO;ST.129=3;ST.32=ST.32-3;ST.156=AMX.4;ST.130=AMX.1;ST.170=ST.170-AMX.3;MAIN=YES;SIGNAL MAIN;END
  3244. SIGNAL ARMORS
  3245.  
  3246. TOOHEAVY:
  3247. TT 'C9YIKES! YOU HAD BETTER TRY PUMPING IRON IF YOU EXPECT TO WEAR THAT!!W2'
  3248. SIGNAL ARMORS
  3249.  
  3250. NOARM:
  3251. TT 'N1CASORRY BUT ACF' ST.3 'CACANNOT USECF' AMX.1 'CAARMORW2'
  3252. SIGNAL ARMORS
  3253.  
  3254. WEAPONS:
  3255. IF MOGWEP=YES THEN DO;MOGWEP=NO;SIGNAL MAGICSHOP;END
  3256. BUFFERFLUSH
  3257. IF ST.3=MONK THEN DO;TT 'N1CEMONKS ARE ONLY ALLOWED TO USE THEIR HANDS AS WEAPONS!W2';MAIN=YES;SIGNAL MAIN;END
  3258. SFI MPATH||'WEAPONS'
  3259. TT '                                                            CBGOLD:CF' ST.170
  3260. QUERY 'CEWHAT INSTRUMENT OF PAIN IS YOUR PLEASURE?C9 '
  3261. WX=UPPER(RESULT)
  3262. IF WX=p THEN SIGNAL QUIT
  3263. IF WX=' ' THEN SIGNAL MAIN
  3264. IF WX='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  3265. IF WX<1 | WX>35 THEN DO;TT 'N1C9PERHAPS GLASSES WOULD BE MORE SUITED FOR YOU...W2';SIGNAL WEAPONS;END
  3266. IF WX>33 THEN SIGNAL AMMO
  3267. CALL OPEN(1,WPATH||'WEP','R')
  3268. DO I=1 TO 33
  3269.  WPP.I=READLN(1)
  3270. END
  3271. CALL CLOSE(1)
  3272. IF ~EXISTS(WPATH||WPP.WX) THEN DO;TT 'C9N1SORRY, I HAVE NONE OF THOSE IN STOCK!W2';SIGNAL WEAPONS;END
  3273. CALL OPEN(1,WPATH||WPP.WX,'R')
  3274. DO I=1 TO 9
  3275.  WPX.I=READLN(1)
  3276. END
  3277. CALL CLOSE(1)
  3278. SIGNAL CLASSLIMIT
  3279.  
  3280. CLASSLIMIT:
  3281. IF ST.98=BOTH & WPX.9=MISSILE THEN SIGNAL SORRYGUY
  3282. IF ST.98=BOTH & WPX.9=BLADE THEN SIGNAL SORRYGUY
  3283. IF ST.3=WITCH & WPX.9=MISSILE THEN SIGNAL SORRYGUY
  3284. IF ST.3=PRIESTESS & WPX.9=MISSILE THEN SIGNAL SORRYGUY
  3285. IF ST.3=PRIESTESS & WPX.9=BLADE THEN SIGNAL SORRYGUY
  3286. IF WPP.WX=TWOHANDEDSWORD & ST.129>0 THEN DO;TT 'N1CAYOU CANNOT USE THAT WEAPON WHILE CARRYING A SHIELD!W2';SIGNAL WEAPONS;END
  3287. IF WPX.9=MISSILE & ST.129>0 THEN DO;TT 'N1CAYOU CANNOT USE A MISSILE WEAPON AND A SHIELD! SORRY!W2';SIGNAL WEAPONS;END
  3288. IF WPX.8+ST.151+ST.153+ST.156>ST.11 THEN DO;TT 'N1CAYOU CANNOT HANDLE THE ADDITIONAL WEIGHT! SORRY...W2';SIGNAL WEAPONS;END
  3289. IF ST.3=WIZARD & WPX.9=MISSILE THEN SIGNAL SORRYGUY
  3290. IF ST.3=PRIEST & WPX.9=MISSILE THEN SIGNAL SORRYGUY
  3291. IF ST.3=PRIEST & WPX.9=BLADE THEN SIGNAL SORRYGUY
  3292. IF ST.3=NINJA & WPX.9=POLE THEN SIGNAL SORRYGUY
  3293. IF ST.3=ROGUE & WPX.9=POLE THEN SIGNAL SORRYGUY
  3294. IF ST.170<WPX.5 THEN SIGNAL CHEAPO
  3295. TT 'N1CAA FINE CHOICE SIR! AND IT ONLY COSTSCF' WPX.5 'CBGOLDCA PIECES'
  3296. SX 'CEWILL YOU TAKE IT? '
  3297. GETCHAR
  3298. WA=UPPER(RESULT)
  3299. IF WA=p THEN SIGNAL QUIT
  3300. IF WA='Y' THEN SIGNAL WEAPONDO
  3301. SIGNAL WEAPONS
  3302.  
  3303. WEAPONDO:
  3304. ST.170=ST.170-WPX.5
  3305. IF WPX.9=PROJECTILE THEN SIGNAL HOWMANY
  3306. IF WPX.9~=MISSILE THEN DO;ST.33=WPX.1;ST.34=WPX.6;ST.35=WPX.7;ST.36=WPX.2;ST.37=WPX.3;ST.152=WPX.8;SIGNAL WEAPONS;END
  3307. IF WPX.8+ST.152+ST.153+ST.156>ST.11 THEN DO;TT 'N1CAYOU CANNOT HANDLE THE ADDITIONAL WEIGHT! SORRY...W2';SIGNAL WEAPONS;END
  3308. IF WPX.9=MISSILE THEN DO;ST.38=WPX.1;ST.39=WPX.6;ST.40=WPX.7;ST.41=WPX.2;ST.42=WPX.3;ST.43=WPX.4;ST.153=WPX.8;SIGNAL MISSILEDO;END
  3309. SIGNAL WEAPONS
  3310.  
  3311. PRODO:
  3312. ST.38=WPX.1
  3313. ST.39=WPX.6
  3314. ST.40=WPX.7
  3315. ST.41=WPX.2
  3316. ST.42=WPX.3
  3317. ST.43=WPX.4
  3318. ST.76=WPX.1
  3319. SIGNAL WEAPONS
  3320.  
  3321. HOWMANY:
  3322. QUERY 'N1CAHOW MANY OF THESE LITTLE GEMS WOULD YOU LIKE? '
  3323. AXS=UPPER(RESULT)
  3324. SPEND=AXS*WPX.5
  3325. IF AXS=p THEN SIGNAL QUIT
  3326. IF AXS=' ' THEN SIGNAL WEAPONS
  3327. IF AXS='Q' THEN SIGNAL WEAPONS
  3328. IF AXS<1 THEN SIGNAL WEAPONS
  3329. IF SPEND>ST.170 THEN DO;TT 'C9YOU CAN''T AFFORD THAT MANY!!W1'SIGNAL HOWMANY;END
  3330. ST.170=ST.170-SPEND
  3331. ST.77=AXS
  3332. SIGNAL PRODO
  3333.  
  3334. MISSILEDO:
  3335. ST.76=BOLTS
  3336. IF UPPER(ST.38)=SLING THEN ST.76=ROCKS
  3337. IF UPPER(ST.38)~=CROSSBOW THEN ST.76=ARROWS
  3338. SIGNAL WEAPONS
  3339.  
  3340. CHEAPO:
  3341. TT 'N1C9YOU CAN''T AFFORD SUCH WEAPONS!W1'
  3342. SIGNAL WEAPONS
  3343.  
  3344. SORRYGUY:
  3345. IF FUNDS=YES | FUNDZ=YES THEN DO;TT TT 'N1C9ACF' ST.3 'C9CAN NOT USE ACF' MW.9 'C9!W2';SIGNAL SHUFFLE;END
  3346. TT 'N1C9ACF' ST.3 'C9CAN NOT USE ACF' WPX.9 'C9WEAPON!W2'
  3347. SIGNAL WEAPONS
  3348.  
  3349. AMMO:
  3350. QUERY 'CEHOW MANY DO YOU WANT?CD '
  3351. AMN=UPPER(RESULT)
  3352. IF AMN=p THEN SIGNAL QUIT
  3353. IF AMN='Q' THEN SIGNAL WEAPONS
  3354. IF AMN=' ' THEN SIGNAL WEAPONS
  3355. IF AMN>ST.170 THEN DO;TT 'CAYOU DO NOT HAVE ENOUGH GOLD TO BUY THAT MANYCF' ST.76'CC!W1';SIGNAL AMMO;END
  3356. IF AMN<1 THEN SIGNAL AMMO
  3357. ST.170=ST.170-AMN
  3358. ST.77=ST.77+AMN
  3359. SIGNAL WEAPONS
  3360.  
  3361. HEALER:
  3362. SFI MPATH||'HEALER'
  3363. TT 'N1CCYOUR STATUS:'
  3364. TT 'N1CURRENT HEALTH:CF' ST.26
  3365. TT 'CCMAXIMUM HEALTH:CF' ST.27
  3366. TT 'CCGOLD PIECES   :CF' ST.170
  3367. SX 'N1CDSO WHAT CAN WE DO FOR YOU,CF' ST.1 'CD? '
  3368. GETCHAR
  3369. HLR=UPPER(RESULT)
  3370. IF HLR=p THEN SIGNAL QUIT
  3371. IF HLR='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  3372. IF HLR='A' THEN SIGNAL HEALALL /* SOMETHING WRONG HERE */
  3373. IF HLR='H' THEN SIGNAL POINTS
  3374. IF HLR='P' & ST.50=POISONED THEN SIGNAL PHEAL
  3375. SIGNAL HEALER
  3376.  
  3377. PHEAL:
  3378. IF ST.170>200 THEN DO;TT 'N1S1CCLET US TAKE AWAY THAT NASTY POISON FROM YOUR SYSTEM.S0W1N1C9DONE!W1';ST.50=OKAY;SIGNAL HEALER;END
  3379. TT 'N1CASORRY, YOU DO NOT HAVE ENOUGH MONEY.W2'
  3380. SIGNAL HEALER
  3381.  
  3382. POINTS:
  3383. IF ST.26=ST.27 THEN DO;TT 'N1C9YOU DO NOT NEED ANY HEALING...W1';SIGNAL HEALER;END
  3384. QUERY 'N1CEAND HOW MANY POINTS DO YOU WISH US TO HEAL? '
  3385. PTSN=UPPER(RESULT)
  3386. IF PTSN=p THEN SIGNAL QUIT
  3387. NPTS=ST.27-ST.26
  3388. IF PTSN>NPTS THEN DO;TT 'N1CAYOU MAY NOT EXCEED YOUR MAXIMUM!W1';SIGNAL HEALER;END
  3389. IF PTSN<1 THEN DO;TT 'N1CAWE ARE NOT IN THE HABIT OF BUYING HEALTH FROM CLIENTS!W1';SIGNAL HEALER;END
  3390. HCOST=PTSN*5
  3391. IF HCOST>ST.170 THEN DO;TT 'N1CASORRY, BUT YOU DO NOT HAVE THE FUNDS FOR THIS...W2';SIGNAL HEALER;END
  3392. TT 'CDN1LET US HEAL YOU THEN,CF' ST.1 'W1'
  3393. ST.26=ST.26+PTSN
  3394. ST.170=ST.170-HCOST
  3395. DO;MAIN=YES;SIGNAL MAIN;END
  3396.  
  3397. HEALALL:
  3398. BTSN=ST.27-ST.26
  3399. HCOST=BTSN*5
  3400. IF ST.26=ST.27 THEN DO;TT 'N1C9YOU DO NOT NEED HEALING...W1';SIGNAL HEALER;END
  3401. IF HCOST>ST.170 THEN DO;TT 'N1CASORRY, BUT YOU DO NOT HAVE THE FUNDS FOR THIS...W2';SIGNAL HEALER;END
  3402. TT 'CDN1LET US HEAL YOU THEN,CF' ST.1 'W1'
  3403. ST.26=ST.27
  3404. ST.170=ST.170-HCOST
  3405. DO;MAIN=YES;SIGNAL MAIN;END
  3406.  
  3407. ARENA:
  3408. BUFFERFLUSH
  3409. IF INVIS=YES THEN DO;TT 'F1N1C9VOLUNTARILY ENTERING THE ARENA MAKES YOU VISIBLE!!!W2';END
  3410. BZZ=ARENA
  3411. SFI SPATH||'ARENA'
  3412. SX '               CAHIT C9Q CAIF YOU ARE TOO FRIGHTENED TO CONTINUE!!! '
  3413. GETCHAR
  3414. RNWY=UPPER(RESULT)
  3415. IF RNWY=p THEN SIGNAL QUIT
  3416. IF RNWY='Q' THEN SIGNAL MAIN
  3417. SIGNAL MONSTERCALL
  3418.  
  3419. MONSTERMAYBE:
  3420. MYBE=VRND(1,10)
  3421. IF MYBE<6 THEN SIGNAL MONSTERCALL
  3422. SIGNAL MAPCALL
  3423.  
  3424. MONSTERCALL:
  3425. CALL OPEN(1,EPATH||'MCOUNT','R')
  3426. DO I=1 TO 50
  3427.  XG.I=READLN(1)
  3428. END
  3429. CALL CLOSE(1)
  3430. TEMPLEVEL=ST.4
  3431. HACK=VRND(1,20)
  3432. IF HACK<4 THEN TEMPLEVEL=TEMPLEVEL-1
  3433. IF HACK>17 THEN TEMPLEVEL=TEMPLEVEL+1
  3434. IF TEMPLEVEL<1 THEN TEMPLEVEL=1
  3435. MOVES=0
  3436. IF INVIS=YES THEN DO;TT 'N1CAMONSTERS CANNOT FIGHT WHAT THEY CANNOT SEE!W2';SIGNAL SHUFFLE;END
  3437. IF TEMPLEVEL=1 THEN DO;MON=MON1;MXM=VRND(1,XG.1);END
  3438. IF TEMPLEVEL=2 THEN DO;MON=MON2;MXM=VRND(1,XG.2);END
  3439. IF TEMPLEVEL=3 THEN DO;MON=MON3;MXM=VRND(1,XG.3);END
  3440. IF TEMPLEVEL=4 THEN DO;MON=MON4;MXM=VRND(1,XG.4);END
  3441. IF TEMPLEVEL=5 THEN DO;MON=MON5;MXM=VRND(1,XG.5);END
  3442. IF TEMPLEVEL=6 THEN DO;MON=MON6;MXM=VRND(1,XG.6);END
  3443. IF TEMPLEVEL=7 THEN DO;MON=MON7;MXM=VRND(1,XG.7);END
  3444. IF TEMPLEVEL=8 THEN DO;MON=MON8;MXM=VRND(1,XG.8);END
  3445. IF TEMPLEVEL=9 THEN DO;MON=MON9;MXM=VRND(1,XG.9);END
  3446. IF TEMPLEVEL=10 THEN DO;MON=MON10;MXM=VRND(1,XG.10);END
  3447. IF TEMPLEVEL=11 THEN DO;MON=MON11;MXM=VRND(1,XG.11);END
  3448. IF TEMPLEVEL=12 THEN DO;MON=MON12;MXM=VRND(1,XG.12);END
  3449. IF TEMPLEVEL=13 THEN DO;MON=MON13;MXM=VRND(1,XG.13);END
  3450. IF TEMPLEVEL=14 THEN DO;MON=MON14;MXM=VRND(1,XG.14);END
  3451. IF TEMPLEVEL=15 THEN DO;MON=MON15;MXM=VRND(1,XG.15);END
  3452. IF TEMPLEVEL=16 THEN DO;MON=MON16;MXM=VRND(1,XG.16);END
  3453. IF TEMPLEVEL>16 THEN DO;MON=MON17;MXM=VRND(1,XG.17);END
  3454. IF MAP=13 | MAP=14 | MAP=15 | MAP=17 | MAP=18 | MAP=19 | MAP=23 | MAP=24 | MAP=25 THEN DO;MON=MON5A;MXM=VRND(1,XG.22);END
  3455. IF MIPS.LOC=FO THEN DO;MON=MON1A;MXM=VRND(1,XG.18);END
  3456. IF MIPS.LOC=RO THEN DO;MON=MON2A;MXM=VRND(1,XG.19);END
  3457. IF MIPS.LOC=DE THEN DO;MON=MON3A;MXM=VRND(1,XG.20);END
  3458. IF MIPS.LOC=SW THEN DO;MON=MON4A;MXM=VRND(1,XG.21);END
  3459. IF MAP=16 THEN DO;MON=MON6A;MXM=VRND(1,XG.23);END
  3460. IF MAP=20 THEN DO;MON=MON7A;MXM=VRND(1,XG.24);END
  3461. IF MAP=21 | MAP=22 THEN DO;MON=MON8A;MXM=VRND(1,XG.25);END
  3462. IF MAP=27 | MAP=28 | MAP=29 | MAP=30 THEN DO;MON=MON9AB;MXM=VRND(1,10);END
  3463. IF MAP=6 | MAP=35 | MAP=31 | MAP=32 | MAP=33 | MAP=34 THEN DO;MON=MON9A;MXM=VRND(1,XG.26);END
  3464. IF ST.162>1 & TEMPLEVEL<10 THEN DO;MON=MON26;MXM=VRND(1,XG.27);END
  3465. IF ST.162>1 & TEMPLEVEL>9 THEN DO;MON=MON27;MXM=VRND(1,XG.28);END
  3466. IF TEMPLEVEL<10 & MIPS.LOC=OC THEN DO;MON=MON28;MXM=VRND(1,XG.29);END
  3467. IF TEMPLEVEL>9 & MIPS.LOC=OC THEN DO;MON=MON29;MXM=VRND(1,XG.30);END
  3468. SIGNAL LOADMON
  3469.  
  3470. LOADMON:
  3471. CALL OPEN(1,EPATH||MON,'R')
  3472. DO I=1 TO 25
  3473.   MNX.I=READLN(1)
  3474. END
  3475. CALL CLOSE(1)
  3476. SIGNAL LOADMON1
  3477.  
  3478. LOADMON1:
  3479. ENIGMA=UPPER(MNX.MXM)
  3480. IF ENIGMA='' THEN SIGNAL MONSTERCALL
  3481. IF EXISTS(EPATH||ENIGMA) THEN SIGNAL LOADMON2
  3482. SIGNAL MONSTERCALL
  3483.  
  3484. LOADMON2:
  3485. YIP=NO
  3486. CALL OPEN(1,EPATH||ENIGMA,'R')
  3487.  DO I=1 TO 23
  3488.   MS.I=READLN(1)
  3489.  END
  3490. CALL CLOSE(1)
  3491. BUFFERFLUSH
  3492. MM1=' '
  3493. MM2=' '
  3494. MM3=' '
  3495. MM4=' '
  3496. MM5=' '
  3497. MM6=' '
  3498. MM7=' '
  3499. MM8=' '
  3500. MM9=' '
  3501. MM10=' '
  3502. MM11=' ' /* HIT POINTS */
  3503. MM12=' '
  3504. MM13=' '
  3505. MM14=' '
  3506. MM15=' '
  3507. MM16=' '
  3508. MM17=' '
  3509. MM18=' '
  3510. MM19=' '
  3511. MM20=' '
  3512. MONUM=VRND(MS.6,MS.7)
  3513. IF MONUM>0 THEN DO;MM1=UPPER(MS.1);MM11=VRND(MS.8,MS.9);END
  3514. IF MONUM>1 THEN DO;MM2=UPPER(MS.1);MM12=VRND(MS.8,MS.9);END
  3515. IF MONUM>2 THEN DO;MM3=UPPER(MS.1);MM13=VRND(MS.8,MS.9);END
  3516. IF MONUM>3 THEN DO;MM4=UPPER(MS.1);MM14=VRND(MS.8,MS.9);END
  3517. IF MONUM>4 THEN DO;MM5=UPPER(MS.1);MM15=VRND(MS.8,MS.9);END
  3518. IF MONUM>5 THEN DO;MM6=UPPER(MS.1);MM16=VRND(MS.8,MS.9);END
  3519. IF MONUM>6 THEN DO;MM7=UPPER(MS.1);MM17=VRND(MS.8,MS.9);END
  3520. IF MONUM>7 THEN DO;MM8=UPPER(MS.1);MM18=VRND(MS.8,MS.9);END
  3521. IF MONUM>8 THEN DO;MM9=UPPER(MS.1);MM19=VRND(MS.8,MS.9);END
  3522. THIT=ST.44-ST.8
  3523. MHIT=ST.45-ST.17
  3524. MPD=ST.9-3
  3525. IF MPD<0 THEN MPD=0
  3526. DIS=VRND(1,9)*10
  3527. IF ST.162>0 THEN DIS=VRND(20,40)*10
  3528. EXP=0
  3529. ATNUM=0
  3530. MISNUM=0
  3531. MONGO=0
  3532. MCASH=MONUM
  3533. HELD=0
  3534. TEMPAC=ST.32
  3535. TEMPDAMPLUS=ST.9
  3536. IF UPPER(ST.157)='WAR RING' | UPPER(ST.158)='WAR RING' THEN TEMPDAMPLUS=TEMPDAMPLUS+4
  3537. IF UPPER(ST.157)='KNIGHT RING' | UPPER(ST.158)='KNIGHT RING' THEN TEMPDAMPLUS=TEMPDAMPLUS+8
  3538. IF UPPER(ST.157)='ARMOR RING' | UPPER(ST.158)='ARMOR RING' THEN TEMPAC=TEMPAC-1 
  3539. IF UPPER(ST.157)='STONE RING' | UPPER(ST.158)='STONE RING' THEN TEMPAC=TEMPAC-3 
  3540. PHYSAVE=ST.47
  3541. MAGSAVE=ST.49
  3542. TEMPAT=ST.169
  3543. IF UPPER(ST.157)='RING OF ATTACKS' | UPPER(ST.158)='RING OF ATTACKS' THEN TEMPAT=TEMPAT+2 
  3544. TEMPMOVE=ST.16
  3545. IF UPPER(ST.157)='RING OF SPEED' | UPPER(ST.158)='RING OF SPEED' THEN TEMPMOVE=TEMPMOVE+6 
  3546. MOVP=TEMPMOVE
  3547. TEMPTHACO=THIT
  3548. IF UPPER(ST.157)='RING OF ACCURACY' | UPPER(ST.158)='RING OF ACCURACY' THEN TEMPTHACO=TEMPTHACO+2 
  3549. MISDAMPLUS=TEMPDAMPLUS-4
  3550. IF MISDAMPLUS>0 THEN MISDAMPLUS=0
  3551. TEMPMHACO=MHIT
  3552. RUNT=0
  3553. SPELL1=0
  3554. SPELL2=0
  3555. SPELL3=0
  3556. MSAVE=0
  3557. EEXP=0
  3558. EXP=0
  3559. IF MAP<13 & ST.117~=NONE THEN POSSY=YES
  3560. IF MAP=0 | MAP>12 THEN POSSY=NO
  3561. IF POSSY=YES THEN DO;TEMPMOVE=ST.118/10;END
  3562. TT 'F1'
  3563. IF ST.127=ON & EXISTS(SPATH||MS.3) THEN DO;YIP=YES;SFI SPATH||MS.3;END
  3564. IF ST.127=ON & UPPER(MS.20)=UNDEAD THEN DO;YIP=YES;SFI SPATH||'UNDEFAULT';END
  3565. IF ST.127=ON & UPPER(MS.20)=DEMON THEN DO;YIP=YES;SFI SPATH||'DEMONFAULT';END
  3566. IF ST.127=ON & ST.162>99 THEN DO;YIP=YES;SFI SPATH||'SKYDEFAULT';END
  3567. IF ST.127=ON & YIP~=YES THEN DO;YIP=NO;SFI SPATH||'MONDEFAULT';END
  3568. TT 'N2S1CB' MS.2 'S0W1'
  3569. TT 'CAYOU SEECF' MONUM 'CAOF THEM CLOSING ATCF' DIS 'CAFEET!W2'
  3570. TT 'F1'
  3571. SFI SPATH||'COMBATSCREEN'
  3572. MESS1='READY FOR ACTION!!!'
  3573. MESS2=' '
  3574. MESS3=' '
  3575. MESS4=' '
  3576. CLEARA='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3577. CLEAR1='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3578. CLEAR2='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3579. CLEAR3='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3580. CLEAR4='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3581. PCKPU=NO
  3582. IF ST.14<MS.22 THEN DO;MESS1='THEY ARE QUICKER THAN YOU ARE!!!';SIGNAL MONTURN;END
  3583. COND=ST.50
  3584. SIGNAL COMBAT
  3585.  
  3586. COMBAT:
  3587. TRIED=NO
  3588. IF EXISTS(CPATH||'CLEAN') THEN ADDRESS COMMAND 'C:CLEAN'
  3589. IF MISSY=YES & MISNUM=MSTS THEN DO;MISNUM=0;MISSY=NO;SIGNAL MONTURN;END
  3590. IF ATTY=YES & ATNUM=TEMPAT THEN DO;ATNUM=0;ATTY=NO;SIGNAL MONTURN;END
  3591. NME='BC'LEFT(ST.1' ',20)''
  3592. RACE='BC'ST.2''
  3593. CLASS='BC'ST.3''
  3594. LEVEL='BC'ST.4''
  3595. CLRC1='BC'XXXXXXXXXX''
  3596. CNDE='BC'COND''
  3597. CLRC2='BC'XXXXX''
  3598. HELTH='BC'ST.26''
  3599. ATX='BC'TEMPAT''
  3600. THAC='BC'TEMPTHACO''
  3601. MHAC='BC'TEMPMHACO''
  3602. XP='BC'LEFT(EEXP' ',6)''
  3603. AC='BC'TEMPAC''
  3604. DAW='BC'ST.36' TO 'ST.37'+'TEMPDAMPLUS''
  3605. DWM='BC'ST.41' TO 'ST.42'+'MISDAMPLUS''
  3606. CLRC3='BC'XXXXX''
  3607. MVD='BC'MOVP''
  3608. CLRC4='BC'XXXX''
  3609. AMMO='BC'ST.77''
  3610. CLRC5='BC'XXXX''
  3611. DIST='BC'DIS''
  3612. MPR1='BC'MM1''
  3613. MPR2='BC'MM2''
  3614. MPR3='BC'MM3''
  3615. MPR4='BC'MM4''
  3616. MPR5='BC'MM5''
  3617. MPR6='BC'MM6''
  3618. MPR7='BC'MM7''
  3619. MPR8='BC'MM8''
  3620. MPR9='BC'MM9''
  3621. MXS1='BC'MESS1''
  3622. MXS2='BC'MESS2''
  3623. MXS3='BC'MESS3''
  3624. MXS4='BC'MESS4''
  3625. CLEAR1='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3626. CLEAR2='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3627. CLEAR3='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3628. CLEAR4='BCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'      
  3629. XM1=DXD
  3630. XM2=DXD
  3631. XM3=DXD
  3632. XM4=DXD
  3633. XM5=DXD
  3634. XM6=DXD
  3635. XM7=DXD
  3636. XM8=DXD
  3637. XM9=DXD
  3638. IF TEMPAC<-10 THEN TEMPAC=-10
  3639. IF ST.50=POISONED THEN ST.26=ST.26-1
  3640. IF ST.26<1 THEN SIGNAL YOUDEAD
  3641. IF SPELL1>1 THEN SPELL1=SPELL1-1
  3642. IF SPELL2>1 THEN SPELL2=SPELL2-1
  3643. IF SPELL3>1 THEN SPELL3=SPELL3-1
  3644. IF SPELL1=1 THEN DO;SPELL1=SPELL1-1;SIGNAL ENDED;END
  3645. IF SPELL2=1 THEN DO;SPELL2=SPELL2-1;SIGNAL ENDED1;END
  3646. IF SPELL3=1 THEN DO;SPELL3=SPELL3-1;SIGNAL ENDED2;END
  3647. MAX=UPPER(MS.1)
  3648. IF HELD>0 THEN DO;HELD=HELD-1;MESS1='YOU ARE STILL' COND''ST.163;SIGNAL MONTURN;END
  3649. IF HELD=0 & COND~=OKAY THEN DO;MESS1='YOU ARE NO LONGER' COND''ST.163;COND=ST.50;END
  3650. ARCHER=NO
  3651. IF MOVP<1 THEN SIGNAL MONTURN
  3652. SIGNAL COMBAT1
  3653.  
  3654. COMBATPREP:
  3655. XPAP=EXP/ST.168
  3656. PARSE VAR XPAP SEEXP"."REMDS
  3657. EEXP=EEXP+SEEXP
  3658. EXP=0
  3659. TT 'F1'
  3660. SFI SPATH||'COMBATSCREEN'
  3661. IF SPLD=YES THEN DO;SPLD=NO;SIGNAL MONTURN;END
  3662. IF MONNY=YES THEN DO;MONNY=NO;SIGNAL MONTURN;END
  3663. SIGNAL COMBAT
  3664.  
  3665. COMBAT1:
  3666. ZED=YES
  3667. TT 'F0'NME
  3668. TT 'F0'RACE
  3669. TT 'F0'CLASS
  3670. TT 'F0'LEVEL
  3671. TT 'F0'CLRC1
  3672. TT 'F0'CLRC2
  3673. TT 'F0'CLRC3
  3674. TT 'F0'CLRC4
  3675. TT 'F0'CLRC5
  3676. TT 'F0'CNDE
  3677. TT 'F0'MPR1
  3678. TT 'F0'MPR2
  3679. TT 'F0'MPR3
  3680. TT 'F0'MPR4
  3681. TT 'F0'MPR5
  3682. TT 'F0'MPR6
  3683. TT 'F0'MPR7
  3684. TT 'F0'MPR8
  3685. TT 'F0'MPR9
  3686. TT 'F0'HELTH
  3687. TT 'F0'ATX
  3688. TT 'F0'THAC
  3689. TT 'F0'MHAC
  3690. TT 'F0'XP
  3691. TT 'F0'AC
  3692. TT 'F0'DAW
  3693. TT 'F0'DWM
  3694. TT 'F0'MVD
  3695. TT 'F0'AMMO
  3696. TT 'F0'DIST
  3697. TT 'F0'CLEAR1
  3698. TT 'F0'CLEAR2
  3699. TT 'F0'CLEAR3
  3700. TT 'F0'CLEAR4
  3701. TT 'F0'MXS1
  3702. TT 'F0'MXS2
  3703. TT 'F0'MXS3
  3704. TT 'F0'MXS4
  3705. FCT=0
  3706. FXT=0
  3707. IF MONUM~=0 THEN DO;MESS1=CLEARA;MESS2=CLEARA;MESS3=CLEARA;MESS4=CLEARA;END
  3708. IF MONUM=0 THEN DO;ZED=YES;SIGNAL MONTURN;END
  3709. SX 'F0BCBSELECT YOUR ACTIONSCA>>>C0XXXXXXXXXXXXXXXXXXXXD '
  3710. GETCHAR
  3711. ACT=UPPER(RESULT)
  3712. IF ACT=p THEN SIGNAL QUIT
  3713. IF ACT='A' THEN SIGNAL ATTACK
  3714. IF ACT='F' THEN SIGNAL FORWARD
  3715. IF ACT='T' THEN SIGNAL TURNED
  3716. IF ACT='C' THEN SIGNAL SPELLCAST
  3717. IF ACT='W' & MONUM>1 THEN DO;MESS1='YOU WAIT FOR THE' UPPER(MS.1)'S TO ADVANCE!'ST.163;SIGNAL MONTURN;END
  3718. IF ACT='W' & MONUM=1 THEN DO;MESS1='YOU WAIT FOR THE' UPPER(MS.1)' TO ADVANCE!'ST.163;SIGNAL MONTURN;END
  3719. IF ACT='R' THEN SIGNAL RUNATTEMPT
  3720. IF ACT='U' THEN SIGNAL USEITEM
  3721. IF ACT='S' THEN DO;CSPAD=YES;SIGNAL DELAYED;END
  3722. IF ACT='B' THEN SIGNAL BACKWARD
  3723. SIGNAL COMBAT
  3724.  
  3725. USEITEM:
  3726. TT 'F1N3CAHERE IS A LIST OF YOUR ITEMS:N1'
  3727. IF ITEM.1~=' ' THEN TT 'CF1. CE' LEFT(ITEM.1' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.1' ',2) 'CFAMOUNT:CE' AMOUNT.1
  3728. IF ITEM.2~=' ' THEN TT 'CF2. CE' LEFT(ITEM.2' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.2' ',2) 'CFAMOUNT:CE' AMOUNT.2
  3729. IF ITEM.3~=' ' THEN TT 'CF3. CE' LEFT(ITEM.3' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.3' ',2) 'CFAMOUNT:CE' AMOUNT.3
  3730. IF ITEM.4~=' ' THEN TT 'CF4. CE' LEFT(ITEM.4' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.4' ',2) 'CFAMOUNT:CE' AMOUNT.4
  3731. IF ITEM.5~=' ' THEN TT 'CF5. CE' LEFT(ITEM.5' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.5' ',2) 'CFAMOUNT:CE' AMOUNT.5
  3732. IF ITEM.6~=' ' THEN TT 'CF6. CE' LEFT(ITEM.6' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.6' ',2) 'CFAMOUNT:CE' AMOUNT.6
  3733. IF ITEM.7~=' ' THEN TT 'CF7. CE' LEFT(ITEM.7' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.7' ',2) 'CFAMOUNT:CE' AMOUNT.7
  3734. IF ITEM.8~=' ' THEN TT 'CF8. CE' LEFT(ITEM.8' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.8' ',2) 'CFAMOUNT:CE' AMOUNT.8
  3735. IF ITEM.9~=' ' THEN TT 'CF9. CE' LEFT(ITEM.9' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.9' ',2) 'CFAMOUNT:CE' AMOUNT.9
  3736. IF ITEM.10~=' ' THEN TT 'CF10. CE' LEFT(ITEM.10' ',25) 'CFCHARGES:CE' LEFT(WEIGHT.10' ',2) 'CFAMOUNT:CE' AMOUNT.10
  3737. TT ' '
  3738. IF UPPER(ST.34)~=NONE THEN TT 'CFW. CE' ST.33
  3739. IF UPPER(ST.39)~=NONE THEN TT 'CFM. CE' ST.38
  3740. QUERY 'N1CBWHAT SHALL IT BE? C9[Q=QUIT] '
  3741. CMBIT=UPPER(RESULT)
  3742. IF CMBIT=p THEN SIGNAL QUIT
  3743. IF CMBIT='Q' THEN SIGNAL COMBATPREP
  3744. IF CMBIT='W' & ST.32~='NONE' THEN DO;CMBTER=YES;SPNME=ST.34;SIGNAL CALLSPELL;END
  3745. IF CMBIT='M' & ST.39~='NONE' THEN DO;CMBTER=YES;SPNME=ST.39;SIGNAL CALLSPELL;END
  3746. IF WEIGHT.CMBIT=0 THEN DO;MESS1='CATHISCF' ITEM.CMBIT 'HAS NO CHARGES!'ST.163;SIGNAL USEITEM;END
  3747. IF EXISTS(IPATH||ITEM.CMBIT) & ITEM.CMBIT~=' ' THEN SIGNAL CMBUSE
  3748. TT 'C9PICK A REAL ITEM...'ST.163
  3749. SIGNAL USEITEM 
  3750.  
  3751. CMBUSE:
  3752. SPLD=YES
  3753. CALL OPEN(1,IPATH||ITEM.CMBIT,'R')
  3754.  DO I=1 TO 10
  3755.  JAKE.I=READLN(1)
  3756.  END
  3757. CALL CLOSE(1)
  3758. IF JAKE.6~=COMBAT THEN DO;TT 'N1C9THIS ITEM HAS NO USE IN COMBAT!'ST.168;SIGNAL USEITEM;END
  3759. SPNME=JAKE.4
  3760. CMBTER=YES
  3761. WEIGHT.CMBIT=WEIGHT.CMBIT-1
  3762. IF WEIGHT.CMBIT=0 & UPPER(JAKE.10)=WAND THEN DO;AMOUNT.CMBIT=AMOUNT.CMBIT-1;WEIGHT.CMBIT=10;END
  3763. IF WEIGHT.CMBIT=0 & UPPER(JAKE.10)~=WAND THEN DO;AMOUNT.CMBIT=AMOUNT.CMBIT-1;WEIGHT.CMBIT=1;END
  3764. IF AMOUNT.CMBIT=0 THEN DO;ITEM.CMBIT=' ';SIGNAL MOVEUP;END
  3765. SIGNAL CALLSPELL
  3766.  
  3767. RUNATTEMPT:
  3768. IF RUNT=3 THEN SIGNAL RUN
  3769. RUUN=ST.14+2
  3770. IF RUUN>MS.22 THEN SIGNAL RUN
  3771. MESS1='YOU ARE UNABLE TO GET AWAY FROM THE ENEMY'ST.163
  3772. RUNT=RUNT+1
  3773. SIGNAL MONTURN
  3774.  
  3775. SPELLCAST:
  3776. IF TEMPMOVE<4 THEN DO;MESS1='IT TAKES 4 MOVE POINTS TO CAST A SPELL!'ST.163;SIGNAL COMBATPREP;END
  3777. IF ST.97=NO THEN DO;MESS1='YOU ARE NOT CAPABLE OF THIS ACT!'ST.163;SIGNAL COMBATPREP;END
  3778. IF EXISTS(BPATH||NAME) THEN SIGNAL SPELLVIEW
  3779. MESS1='YOU HAVEN''T MEMORIZED ANY SPELLS!!!'ST.163
  3780. SIGNAL COMBAT
  3781.  
  3782. SPELLVIEW:
  3783. IF BRED=NO THEN DO;CALL OPEN(1,BPATH||NAME,'R');DO I=1 TO 45;SPNAME.I=READLN(1);SPTOTAL.I=READLN(1);SPAMOUNT.I=READLN(1);END;CALL CLOSE(1);END
  3784. BRED=YES
  3785. TT 'F1CBTHE MEMORIZED SPELLS OF CA' ST.1
  3786. TT ''
  3787. TT 'CB1.  CA'LEFT(SPNAME.1' ',16) 'CF'LEFT(SPAMOUNT.1' ',2) 'CB16. CA'LEFT(SPNAME.16' ',16) 'CF'LEFT(SPAMOUNT.16' ',2) 'CB31. CA'LEFT(SPNAME.31' ',16) 'CF'LEFT(SPAMOUNT.31' ',2)
  3788. TT 'CB2.  CA'LEFT(SPNAME.2' ',16) 'CF'LEFT(SPAMOUNT.2' ',2) 'CB17. CA'LEFT(SPNAME.17' ',16) 'CF'LEFT(SPAMOUNT.17' ',2) 'CB32. CA'LEFT(SPNAME.32' ',16) 'CF'LEFT(SPAMOUNT.32' ',2)
  3789. TT 'CB3.  CA'LEFT(SPNAME.3' ',16) 'CF'LEFT(SPAMOUNT.3' ',2) 'CB18. CA'LEFT(SPNAME.18' ',16) 'CF'LEFT(SPAMOUNT.18' ',2) 'CB33. CA'LEFT(SPNAME.33' ',16) 'CF'LEFT(SPAMOUNT.33' ',2)
  3790. TT 'CB4.  CA'LEFT(SPNAME.4' ',16) 'CF'LEFT(SPAMOUNT.4' ',2) 'CB19. CA'LEFT(SPNAME.19' ',16) 'CF'LEFT(SPAMOUNT.19' ',2) 'CB34. CA'LEFT(SPNAME.34' ',16) 'CF'LEFT(SPAMOUNT.34' ',2)
  3791. TT 'CB5.  CA'LEFT(SPNAME.5' ',16) 'CF'LEFT(SPAMOUNT.5' ',2) 'CB20. CA'LEFT(SPNAME.20' ',16) 'CF'LEFT(SPAMOUNT.20' ',2) 'CB35. CA'LEFT(SPNAME.35' ',16) 'CF'LEFT(SPAMOUNT.35' ',2)
  3792. TT 'CB6.  CA'LEFT(SPNAME.6' ',16) 'CF'LEFT(SPAMOUNT.6' ',2) 'CB21. CA'LEFT(SPNAME.21' ',16) 'CF'LEFT(SPAMOUNT.21' ',2) 'CB36. CA'LEFT(SPNAME.36' ',16) 'CF'LEFT(SPAMOUNT.36' ',2)
  3793. TT 'CB7.  CA'LEFT(SPNAME.7' ',16) 'CF'LEFT(SPAMOUNT.7' ',2) 'CB22. CA'LEFT(SPNAME.22' ',16) 'CF'LEFT(SPAMOUNT.22' ',2) 'CB37. CA'LEFT(SPNAME.37' ',16) 'CF'LEFT(SPAMOUNT.37' ',2)
  3794. TT 'CB8.  CA'LEFT(SPNAME.8' ',16) 'CF'LEFT(SPAMOUNT.8' ',2) 'CB23. CA'LEFT(SPNAME.23' ',16) 'CF'LEFT(SPAMOUNT.23' ',2) 'CB38. CA'LEFT(SPNAME.38' ',16) 'CF'LEFT(SPAMOUNT.38' ',2)
  3795. TT 'CB9.  CA'LEFT(SPNAME.9' ',16) 'CF'LEFT(SPAMOUNT.9' ',2) 'CB24. CA'LEFT(SPNAME.24' ',16) 'CF'LEFT(SPAMOUNT.24' ',2) 'CB39. CA'LEFT(SPNAME.39' ',16) 'CF'LEFT(SPAMOUNT.39' ',2)
  3796. TT 'CB10. CA'LEFT(SPNAME.10' ',16) 'CF'LEFT(SPAMOUNT.10' ',2) 'CB25. CA'LEFT(SPNAME.25' ',16) 'CF'LEFT(SPAMOUNT.25' ',2) 'CB40. CA'LEFT(SPNAME.40' ',16) 'CF'LEFT(SPAMOUNT.40' ',2)
  3797. TT 'CB11. CA'LEFT(SPNAME.11' ',16) 'CF'LEFT(SPAMOUNT.11' ',2) 'CB26. CA'LEFT(SPNAME.26' ',16) 'CF'LEFT(SPAMOUNT.26' ',2) 'CB41. CA'LEFT(SPNAME.41' ',16) 'CF'LEFT(SPAMOUNT.41' ',2)
  3798. TT 'CB12. CA'LEFT(SPNAME.12' ',16) 'CF'LEFT(SPAMOUNT.12' ',2) 'CB27. CA'LEFT(SPNAME.27' ',16) 'CF'LEFT(SPAMOUNT.27' ',2) 'CB42. CA'LEFT(SPNAME.42' ',16) 'CF'LEFT(SPAMOUNT.42' ',2)
  3799. TT 'CB13. CA'LEFT(SPNAME.13' ',16) 'CF'LEFT(SPAMOUNT.13' ',2) 'CB28. CA'LEFT(SPNAME.28' ',16) 'CF'LEFT(SPAMOUNT.28' ',2) 'CB43. CA'LEFT(SPNAME.43' ',16) 'CF'LEFT(SPAMOUNT.43' ',2)
  3800. TT 'CB14. CA'LEFT(SPNAME.14' ',16) 'CF'LEFT(SPAMOUNT.14' ',2) 'CB29. CA'LEFT(SPNAME.29' ',16) 'CF'LEFT(SPAMOUNT.29' ',2) 'CB44. CA'LEFT(SPNAME.44' ',16) 'CF'LEFT(SPAMOUNT.44' ',2)
  3801. TT 'CB15. CA'LEFT(SPNAME.15' ',16) 'CF'LEFT(SPAMOUNT.15' ',2) 'CB30. CA'LEFT(SPNAME.30' ',16) 'CF'LEFT(SPAMOUNT.30' ',2) 'CB45. CA'LEFT(SPNAME.45' ',16) 'CF'LEFT(SPAMOUNT.45' ',2)
  3802. QUERY 'N1CEWHICH SPELL C9# CEWOULD YOU LIKE TO CAST?C9 [Q=QUIT]CF '
  3803. SPLN=UPPER(RESULT)
  3804. IF SPLN=p THEN SIGNAL QUIT
  3805. IF SPLN='Q' THEN SIGNAL COMBATPREP
  3806. IF SPLN=' ' THEN SIGNAL COMBATPREP
  3807. IF SPNAME.SPLN=' ' THEN DO;TT 'N1C9YOU HAVE NOT MEMORIZED THAT MANY SPELLS'ST.163;SIGNAL SPELLVIEW;END
  3808. IF SPAMOUNT.SPLN=0 THEN DO;TT 'N1CEYOU HAVE NO MORE OF THIS SPELL IN YOUR MEMORY!'ST.163;SIGNAL SPELLVIEW;END
  3809. SPNME=SPNAME.SPLN
  3810. CMBTER=NO
  3811. IF EXISTS(SKPATH||SPNME) THEN DO;SPLD=YES;SIGNAL CALLSPELL;END
  3812. SIGNAL SPELLVIEW
  3813.  
  3814. CALLSPELL:
  3815. CALL OPEN(1,SKPATH||SPNME,'R')
  3816. DO I=1 TO 9
  3817.  SP.I=READLN(1)
  3818. END
  3819. CALL CLOSE(1)
  3820. IF UPPER(SP.3)~=COMBAT THEN DO;TT 'N1CATHAT IS NOT A COMBAT SPELL!'ST.163;SIGNAL SPELLVIEW;END
  3821. IF CMBTER=NO THEN SPAMOUNT.SPLN=SPAMOUNT.SPLN-1
  3822. IF UPPER(SP.7)=CHARM THEN SIGNAL CHARM
  3823. IF UPPER(SP.7)=DEFENSE THEN SIGNAL DEFENSE
  3824. IF UPPER(SP.7)=BONUS THEN SIGNAL BONUS
  3825. HITNUM=SP.9
  3826. IF HITNUM>MONUM THEN HITNUM=MONUM
  3827. SIGNAL MONCHOICE
  3828.  
  3829. BONUS:
  3830. CMBTER=NO
  3831. SPELL3=SP.8*ST.4
  3832. IF UPPER(SP.6)=ATTN THEN TEMPAT=TEMPAT+SP.5
  3833. IF UPPER(SP.6)=DAM THEN TEMPDAMPLUS=TEMPDAMPLUS+SP.5
  3834. IF UPPER(SP.6)=MOVE THEN TEMMOVE=TEMPMOVE+SP.5
  3835. IF UPPER(SP.6)=THACO THEN TEMTHACO=TEMPTHACO-SP.5
  3836. IF UPPER(SP.6)=MHACO THEN TEMPMHACO=TEMPMHACO-SP.5
  3837. IF UPPER(SP.6)=ALL THEN DO;TEMPAT=TEMPAT+SP.5;TEMPDAMPLUS=TEMPDAMPLUS+SP.5;TEMPMOVE=TEMPMOVE+SP.5;TEMPTHACO=TEMPTHACO-SP.5;TEMPMHACO=TEMPMHACO-SP.5;END
  3838. TT 'CAYOU CAST ACF' SP.1 'CAAND BEGIN TO FEEL SUPERIOR!'ST.163
  3839. DO;MONNY=YES;SIGNAL COMBATPREP;END
  3840.  
  3841. DEFENSE:
  3842. CMBTER=NO
  3843. SPELL2=SP.8*ST.4
  3844. IF UPPER(SP.6)=AC THEN TEMPAC=TEMPAC-SP.5 
  3845. IF UPPER(SP.6)=PHYSAVE THEN PHYSAVE=PHYSAVE-SP.5
  3846. IF UPPER(SP.6)=MAGSAVE THEN MAGSAVE=MAGSAVE-SP.5
  3847. IF UPPER(SP.6)=ALL THEN DO;TEMPAC=TEMPAC-SP.5;PHYSAVE=PHYSAVE-SP.5;MAGSAVE=MAGSAVE-SP.5;END
  3848. TT 'CAN1YOU CASTCF' SP.1 'CAON YOURSELF AND FEEL SAFER!'ST.163
  3849. IF TEMPAC<-10 THEN TEMPAC=-10
  3850. DO;MONNY=YES;SIGNAL COMBATPREP;END
  3851.  
  3852. CHARM:
  3853. CMBTER=NO
  3854. SPELL1=SP.8*ST.4
  3855. FECTD=SP.9
  3856. IF FECTD>MONUM THEN FECTD=MONUM
  3857. SIGNAL MONSAVE
  3858.  
  3859. MONSAVE:
  3860. MOSAV=MS.15
  3861.  
  3862. MOSAVE2:
  3863. IF UPPER(SP.1)=SLEEP THEN HEX=ASLEEP
  3864. IF UPPER(SP.1)=CHARM THEN HEX=CHARMED
  3865. IF UPPER(SP.1)=PARALYZE THEN HEX=PARALYZED
  3866. IF UPPER(SP.1)=GAZE THEN HEX=HYPNOTIZED
  3867. IF UPPER(SP.1)=WEB THEN HEX=STUCK
  3868. IF UPPER(SP.1)=BEDAZZLE THEN HEX=BEDAZZLED
  3869. SVTRY=VRND(1,20)
  3870. IF MM1~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM1;MM1=HEX;TT 'CF'UPPER(MS.1)' C9#1CA ISCF' HEX''ST.163;END
  3871. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3872. SVTRY=VRND(1,20)
  3873. IF MM2~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM2;MM2=HEX;TT 'CF'UPPER(MS.1)' C9#2CA ISCF' HEX''ST.163;END
  3874. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3875. SVTRY=VRND(1,20)
  3876. IF MM3~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM3;MM3=HEX;TT 'CF'UPPER(MS.1)' C9#3CA ISCF' HEX''ST.163;END
  3877. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3878. SVTRY=VRND(1,20)
  3879. IF MM4~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM4;MM4=HEX;TT 'CF'UPPER(MS.1)' C9#4CA ISCF' HEX''ST.163;END
  3880. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3881. SVTRY=VRND(1,20)
  3882. IF MM5~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM5;MM5=HEX;TT 'CF'UPPER(MS.1)' C9#5CA ISCF' HEX''ST.163;END
  3883. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3884. SVTRY=VRND(1,20)
  3885. IF MM6~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM6;MM6=HEX;TT 'CF'UPPER(MS.1)' C9#6CA ISCF' HEX''ST.163;END
  3886. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3887. SVTRY=VRND(1,20)
  3888. IF MM7~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM7;MM7=HEX;TT 'CF'UPPER(MS.1)' C9#7CA ISCF' HEX''ST.163;END
  3889. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3890. SVTRY=VRND(1,20)
  3891. IF MM8~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM8;MM8=HEX;TT 'CF'UPPER(MS.1)' C9#8CA ISCF' HEX''ST.163;END
  3892. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3893. SVTRY=VRND(1,20)
  3894. IF MM9~=' ' & SVTRY<MOSAV THEN DO;MSAVE=MSAVE+1;OLDM=MM9;MM9=HEX;TT 'CF'UPPER(MS.1)' C9#9CA ISCF' HEX''ST.163;END
  3895. IF MSAVE=FECTD THEN SIGNAL MONTURN
  3896. SIGNAL MONTURN
  3897.  
  3898. ENDED:
  3899. IF MM1~=' ' THEN MM1=OLDM
  3900. IF MM2~=' ' THEN MM2=OLDM
  3901. IF MM3~=' ' THEN MM3=OLDM
  3902. IF MM4~=' ' THEN MM4=OLDM
  3903. IF MM5~=' ' THEN MM5=OLDM
  3904. IF MM6~=' ' THEN MM6=OLDM
  3905. IF MM7~=' ' THEN MM7=OLDM
  3906. IF MM8~=' ' THEN MM8=OLDM
  3907. IF MM9~=' ' THEN MM9=OLDM
  3908. MESS1= 'CAYOUR SPELL HAS WORN OFF'ST.163
  3909. SIGNAL COMBAT
  3910.  
  3911. ENDED1:
  3912. TEMPAC=ST.32
  3913. PHYSAVE=ST.47
  3914. MAGSAVE=ST.49
  3915. MESS1= 'CAYOUR SPELL HAS WORN OFF AND YOU HAVE RETURNED TO NORMAL'ST.163
  3916. SIGNAL COMBAT
  3917.  
  3918. ENDED2:
  3919. TEMPAT=ST.169
  3920. TEMPDAMPLUS=ST.9
  3921. TEMPMOVE=ST.16
  3922. TEMPTHACO=THIT
  3923. TEMPMHACO=MHIT
  3924. MESS1= 'YOUR SPELL HAS WORN OFF. YOU ARE NO LONGER A SUPERMAN...'ST.163
  3925. SIGNAL COMBAT
  3926.  
  3927. MONCHOICE:
  3928. CMBTER=NO
  3929. TT 'F1N2C9YOU CAST A CF'SPNME 'C9AT THECF' UPPER(MS.1)'SC9!'
  3930. IF HITNUM=0 THEN SIGNAL MONTURN
  3931. IF HITNUM>0 THEN SIGNAL MND1
  3932. MND1:
  3933. IF MM1='' THEN SIGNAL MND2
  3934. DAM1=VRND(SP.5,SP.6)
  3935. DAM2=VRND(SP.5,SP.6)
  3936. DAM3=VRND(SP.5,SP.6)
  3937. DAM4=VRND(SP.5,SP.6)
  3938. DAM5=DAM4+DAM3+DAM2+DAM1
  3939. DAM6=DAM5/4
  3940. PARSE VAR DAM6 DAM7'.'REMD
  3941. DAM=DAM7*ST.4
  3942. MONSAV=MS.15
  3943. DAM8=DAM/2
  3944. PARSE VAR DAM8 NDAM"."REMDS
  3945. SVTRY=VRND(1,20)+1
  3946. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#1 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM11=MM11-DAM;END
  3947. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#1 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM11=MM11-NDAM;END
  3948. IF MM11<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM1='                  ';END
  3949. IF HITNUM>0 THEN SIGNAL MND2
  3950. DO;MONNY=YES;SIGNAL COMBATPREP;END
  3951.  
  3952. MND2:
  3953. IF MM2='' THEN SIGNAL MND3
  3954. DAM1=VRND(SP.5,SP.6)
  3955. DAM2=VRND(SP.5,SP.6)
  3956. DAM3=VRND(SP.5,SP.6)
  3957. DAM4=VRND(SP.5,SP.6)
  3958. DAM5=DAM4+DAM3+DAM2+DAM1
  3959. DAM6=DAM5/4
  3960. PARSE VAR DAM6 DAM7'.'REMD
  3961. DAM=DAM7*ST.4
  3962. MONSAV=MS.15
  3963. DAM8=DAM/2
  3964. PARSE VAR DAM8 NDAM"."REMDS
  3965. SVTRY=VRND(1,20)+1
  3966. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#2 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM12=MM12-DAM;END
  3967. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#2 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM12=MM12-NDAM;END
  3968. IF MM12<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM2='                  ';END
  3969. IF HITNUM>0 THEN SIGNAL MND3
  3970. DO;MONNY=YES;SIGNAL COMBATPREP;END
  3971.  
  3972. MND3:
  3973. IF MM3=' ' THEN SIGNAL MND4
  3974. DAM1=VRND(SP.5,SP.6)
  3975. DAM2=VRND(SP.5,SP.6)
  3976. DAM3=VRND(SP.5,SP.6)
  3977. DAM4=VRND(SP.5,SP.6)
  3978. DAM5=DAM4+DAM3+DAM2+DAM1
  3979. DAM6=DAM5/4
  3980. PARSE VAR DAM6 DAM7'.'REMD
  3981. DAM=DAM7*ST.4
  3982. MONSAV=MS.15
  3983. DAM8=DAM/2
  3984. PARSE VAR DAM8 NDAM"."REMDS
  3985. SVTRY=VRND(1,20)+1
  3986. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#3 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM13=MM13-DAM;END
  3987. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#3 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM13=MM13-NDAM;END
  3988. IF MM13<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM3='                  ';END
  3989. IF HITNUM>0 THEN SIGNAL MND4
  3990. DO;MONNY=YES;SIGNAL COMBATPREP;END
  3991.  
  3992. MND4:
  3993. IF MM4=' ' THEN SIGNAL MND5
  3994. DAM1=VRND(SP.5,SP.6)
  3995. DAM2=VRND(SP.5,SP.6)
  3996. DAM3=VRND(SP.5,SP.6)
  3997. DAM4=VRND(SP.5,SP.6)
  3998. DAM5=DAM4+DAM3+DAM2+DAM1
  3999. DAM6=DAM5/4
  4000. PARSE VAR DAM6 DAM7'.'REMD
  4001. DAM=DAM7*ST.4
  4002. MONSAV=MS.15
  4003. DAM8=DAM/2
  4004. PARSE VAR DAM8 NDAM"."REMDS
  4005. SVTRY=VRND(1,20)+1
  4006. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#4 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM14=MM14-DAM;END
  4007. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#4 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM14=MM14-NDAM;END
  4008. IF MM14<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM4='                  ';END
  4009. IF HITNUM>0 THEN SIGNAL MND5
  4010. DO;MONNY=YES;SIGNAL COMBATPREP;END
  4011.  
  4012. MND5:
  4013. IF MM5=' ' THEN SIGNAL MND6
  4014. DAM1=VRND(SP.5,SP.6)
  4015. DAM2=VRND(SP.5,SP.6)
  4016. DAM3=VRND(SP.5,SP.6)
  4017. DAM4=VRND(SP.5,SP.6)
  4018. DAM5=DAM4+DAM3+DAM2+DAM1
  4019. DAM6=DAM5/4
  4020. PARSE VAR DAM6 DAM7'.'REMD
  4021. DAM=DAM7*ST.4
  4022. MONSAV=MS.15
  4023. DAM8=DAM/2
  4024. PARSE VAR DAM8 NDAM"."REMDS
  4025. SVTRY=VRND(1,20)+1
  4026. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#5 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM15=MM15-DAM;END
  4027. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#5 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM15=MM15-NDAM;END
  4028. IF MM15<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM5='                  ';END
  4029. IF HITNUM>0 THEN SIGNAL MND6
  4030. DO;MONNY=YES;SIGNAL COMBATPREP;END
  4031.  
  4032. MND6:
  4033. IF MM6=' ' THEN SIGNAL MND7
  4034. DAM1=VRND(SP.5,SP.6)
  4035. DAM2=VRND(SP.5,SP.6)
  4036. DAM3=VRND(SP.5,SP.6)
  4037. DAM4=VRND(SP.5,SP.6)
  4038. DAM5=DAM4+DAM3+DAM2+DAM1
  4039. DAM6=DAM5/4
  4040. PARSE VAR DAM6 DAM7'.'REMD
  4041. DAM=DAM7*ST.4
  4042. MONSAV=MS.15
  4043. DAM8=DAM/2
  4044. PARSE VAR DAM8 NDAM"."REMDS
  4045. SVTRY=VRND(1,20)+1
  4046. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#6 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM16=MM16-DAM;END
  4047. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#6 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM16=MM16-NDAM;END
  4048. IF MM16<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM6='                  ';END
  4049. IF HITNUM>0 THEN SIGNAL MND7
  4050. DO;MONNY=YES;SIGNAL COMBATPREP;END
  4051.  
  4052. MND7:
  4053. IF MM7=' ' THEN SIGNAL MND8
  4054. DAM1=VRND(SP.5,SP.6)
  4055. DAM2=VRND(SP.5,SP.6)
  4056. DAM3=VRND(SP.5,SP.6)
  4057. DAM4=VRND(SP.5,SP.6)
  4058. DAM5=DAM4+DAM3+DAM2+DAM1
  4059. DAM6=DAM5/4
  4060. PARSE VAR DAM6 DAM7'.'REMD
  4061. DAM=DAM7*ST.4
  4062. MONSAV=MS.15
  4063. DAM8=DAM/2
  4064. PARSE VAR DAM8 NDAM"."REMDS
  4065. SVTRY=VRND(1,20)+1
  4066. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#7 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM17=MM17-DAM;END
  4067. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#7 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM17=MM17-NDAM;END
  4068. IF MM17<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM7='                  ';END
  4069. IF HITNUM>0 THEN SIGNAL MND8
  4070. DO;MONNY=YES;SIGNAL COMBATPREP;END
  4071.  
  4072. MND8:
  4073. IF MM8=' ' THEN SIGNAL MND9
  4074. DAM1=VRND(SP.5,SP.6)
  4075. DAM2=VRND(SP.5,SP.6)
  4076. DAM3=VRND(SP.5,SP.6)
  4077. DAM4=VRND(SP.5,SP.6)
  4078. DAM5=DAM4+DAM3+DAM2+DAM1
  4079. DAM6=DAM5/4
  4080. PARSE VAR DAM6 DAM7'.'REMD
  4081. DAM=DAM7*ST.4
  4082. MONSAV=MS.15
  4083. DAM8=DAM/2
  4084. PARSE VAR DAM8 NDAM"."REMDS
  4085. SVTRY=VRND(1,20)+1
  4086. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#8 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM18=MM18-DAM;END
  4087. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#8 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM18=MM18-NDAM;END
  4088. IF MM18<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM8='                  ';END
  4089. IF HITNUM>0 THEN SIGNAL MND9
  4090. DO;MONNY=YES;SIGNAL COMBATPREP;END
  4091.  
  4092. MND9:
  4093. IF MM9='' THEN SIGNAL COMBATPREP
  4094. DAM1=VRND(SP.5,SP.6)
  4095. DAM2=VRND(SP.5,SP.6)
  4096. DAM3=VRND(SP.5,SP.6)
  4097. DAM4=VRND(SP.5,SP.6)
  4098. DAM5=DAM4+DAM3+DAM2+DAM1
  4099. DAM6=DAM5/4
  4100. PARSE VAR DAM6 DAM7'.'REMD
  4101. DAM=DAM7*ST.4
  4102. MONSAV=MS.15
  4103. DAM8=DAM/2
  4104. PARSE VAR DAM8 NDAM"."REMDS
  4105. SVTRY=VRND(1,20)+1
  4106. IF SVTRY<=MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#9 CAFAILS HIS SAVE & TAKESCB' DAM'CA POINTS OF C9FULLCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM19=MM19-DAM;END
  4107. IF SVTRY>MONSAV THEN DO;TT 'N1CB'UPPER(MS.1) '#9 CAMAKES HIS SAVE & TAKESCB' NDAM'CA POINTS OF CFHALFCA DAMAGE!'ST.163;HITNUM=HITNUM-1;MM19=MM19-NDAM;END
  4108. IF MM19<1 THEN DO;EXP=EXP+MS.16;TT 'C9S1'MS.21 'S0';MONUM=MONUM-1;MM9='                  ';END
  4109. XPAP=EXP/ST.168
  4110. PARSE VAR XPAP SEEXP"."REMDS
  4111. EEXP=EEXP+SEEXP
  4112. DO;MONNY=YES;SIGNAL COMBATPREP;END
  4113.  
  4114. TURNED:
  4115. IF TRIED=YES THEN DO;MESS1='YOU CANNOT TURN UNDEAD MORE THAN 1 TIME PER COMBAT!'ST.163;SIGNAL COMBAT;END
  4116. IF ST.60=X THEN DO;MESS1='YOU ARE NOT CAPABLE OF THIS MANEUVER!'ST.163;SIGNAL COMBAT;END
  4117. IF UPPER(MS.20)=MONSTER | UPPER(MS.20)=NPC THEN DO;MESS1='YOUR OPPONENT IS NOT UNDEAD!'ST.163;SIGNAL COMBAT;END
  4118. TRN=VRND(1,20)+1
  4119. NUM=VRND(2,6)
  4120. IF NUM>MONUM THEN NUM=MONUM
  4121. IF ST.4=1 & TRN>ST.63 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4122. IF ST.4=2 & TRN>ST.63 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4123. IF ST.4=3 & TRN>ST.64 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4124. IF ST.4=4 & TRN>ST.64 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4125. IF ST.4=5 & TRN>ST.65 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4126. IF ST.4=6 & TRN>ST.65 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4127. IF ST.4=7 & TRN>ST.66 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4128. IF ST.4=8 & TRN>ST.66 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4129. IF ST.4=9 & TRN>ST.67 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4130. IF ST.4=10 & TRN>ST.67 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4131. IF ST.4=11 & TRN>ST.68 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4132. IF ST.4=12 & TRN>ST.68 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4133. IF ST.4=13 & TRN>ST.68 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4134. IF ST.4=14 & TRN>ST.69 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4135. IF ST.4=15 & TRN>ST.69 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4136. IF ST.4>15 & TRN>ST.69 THEN DO;MONUM=MONUM-NUM;SIGNAL TURNTALK;END
  4137. TRIED=YES
  4138. MESS2='NONE OF YOUR OPPONENTS WERE AFFECTED!'ST.163
  4139. SIGNAL MONTURN
  4140.  
  4141. TURNTALK:
  4142. MESS1=''NUM 'OF THE' UPPER(MS.1)'S RETURN TO WHERE THEY CAME FROM!'ST.163
  4143. DEXP=NUM*MS.16
  4144. EXP=EXP+DEXP
  4145. TRIED=YES
  4146. SIGNAL TURNY
  4147.  
  4148. FORWARD:
  4149. SX 'F0BCAMOVE C9FORWARD CAHOW FAR (1-9)? C9[1=10 FEET]CFC0XXXXXXXXXXXXXXXXXXXXD '
  4150. GETCHAR
  4151. FORW=RESULT
  4152. IF FORW=p THEN SIGNAL QUIT
  4153. IF FORW>MOVP THEN DO;MESS1='YOU DO NOT HAVE THAT MANY MOVE POINTS!!'ST.163;SIGNAL COMBAT;END
  4154. IF FORW>9 | FORW<1 THEN SIGNAL COMBAT
  4155. FORW1=FORW*10
  4156. HNOW=DIS-10
  4157. IF FORW1>HNOW THEN DO;MESS1='YOU CANNOT MOVE PAST YOUR OPPONENT!!'ST.163;SIGNAL COMBAT;END
  4158. MOVP=MOVP-FORW
  4159. DIS=DIS-FORW1
  4160. IF DIS<10 THEN DIS=10
  4161. SIGNAL COMBAT
  4162.  
  4163. BACKWARD:
  4164. SX 'F0BCAMOVE C9BACKWARDCA HOW FAR (1-9)? C9[1=10 FEET]CFC0XXXXXXXXXXXXXXXXXXXXD '
  4165. GETCHAR
  4166. FORW=RESULT
  4167. IF FORW=p THEN SIGNAL QUIT
  4168. IF FORW>MOVP THEN DO;MESS1='YOU DO NOT HAVE THAT MANY MOVE POINTS!!'ST.163;SIGNAL COMBAT;END
  4169. IF FORW>9 | FORW<1 THEN SIGNAL COMBAT
  4170. MOVP=MOVP-FORW
  4171. FORW1=FORW*10
  4172. DIS=DIS+FORW1
  4173. SIGNAL COMBAT
  4174.  
  4175. ATTACK:
  4176. FCT=0
  4177. FXT=0
  4178. IF ATNUM=TEMPAT THEN DO;ATNUM=0;SIGNAL MONTURN;END
  4179. IF MOVP<3 THEN DO;MESS1='IT TAKES 3 MOVE POINTS TO ATTACK!'ST.163;SIGNAL COMBAT;END
  4180. IF DIS>10 THEN SIGNAL MISTACK
  4181. SX 'F0BCBWHICH ENEMY C9#CB WILL YOU ATTACK?C0XXXXXXXXXXXXXXXXXXXXD '
  4182. GETCHAR
  4183. FCT=UPPER(RESULT)
  4184. IF FCT='1' & MM1~=' ' THEN SIGNAL ATTACKED
  4185. IF FCT='2' & MM2~=' ' THEN SIGNAL ATTACKED
  4186. IF FCT='3' & MM3~=' ' THEN SIGNAL ATTACKED
  4187. IF FCT='4' & MM4~=' ' THEN SIGNAL ATTACKED
  4188. IF FCT='5' & MM5~=' ' THEN SIGNAL ATTACKED
  4189. IF FCT='6' & MM6~=' ' THEN SIGNAL ATTACKED
  4190. IF FCT='7' & MM7~=' ' THEN SIGNAL ATTACKED
  4191. IF FCT='8' & MM8~=' ' THEN SIGNAL ATTACKED
  4192. IF FCT='9' & MM9~=' ' THEN SIGNAL ATTACKED
  4193. MESS1='CHOOSE AN AVAILABLE OPPONENT...'ST.163
  4194. SIGNAL ATTACK
  4195.  
  4196. MISTACK:
  4197. FCT=0
  4198. FXT=0
  4199. MSTS=TEMPAT*2
  4200. IF UPPER(ST.38)=CROSSBOW THEN MSTS=TEMPAT
  4201. IF MISNUM=MSTS THEN DO;MISNUM=0;SIGNAL MONTURN;END
  4202. IF UPPER(ST.38)=NONE THEN DO;MESS1='YOU HAVE NO MISSILE WEAPON! TRY MOVING CLOSER!'ST.163;SIGNAL COMBAT;END
  4203. IF UPPER(ST.76)~=ROCK & UPPER(ST.77)=0 THEN DO;MESS1='YOU SEEM TO BE OUT OF AMMO!'ST.163;SIGNAL COMBAT;END
  4204. IF DIS>ST.43 THEN DO;MESS1='YOUR 'UPPER(ST.38) 'DOES NOT HAVE THAT SORT OF RANGE!'ST.163;SIGNAL COMBAT;END
  4205. IF ST.76~=ROCK & ST.77=0 THEN DO;MESS1='YOU SEEM TO BE OUT OF AMMO!'ST.163;SIGNAL COMBAT;END
  4206. ARCHER=YES
  4207. SX 'F0BCBWHICH ENEMY C9#CB WILL YOU ATTACK?C0XXXXXXXXXXXXXXXXXXXXD '
  4208. GETCHAR
  4209. FXT=UPPER(RESULT)
  4210. IF FXT='1' & MM1~=' ' THEN SIGNAL MATTACKED
  4211. IF FXT='2' & MM2~=' ' THEN SIGNAL MATTACKED
  4212. IF FXT='3' & MM3~=' ' THEN SIGNAL MATTACKED
  4213. IF FXT='4' & MM4~=' ' THEN SIGNAL MATTACKED
  4214. IF FXT='5' & MM5~=' ' THEN SIGNAL MATTACKED
  4215. IF FXT='6' & MM6~=' ' THEN SIGNAL MATTACKED
  4216. IF FXT='7' & MM7~=' ' THEN SIGNAL MATTACKED
  4217. IF FXT='8' & MM8~=' ' THEN SIGNAL MATTACKED
  4218. IF FXT='9' & MM9~=' ' THEN SIGNAL MATTACKED
  4219. MESS1='CHOOSE AN AVAILABLE OPPONENT...'ST.163
  4220. SIGNAL MISTACK
  4221.  
  4222. MATTACKED:
  4223. ATTY=NO
  4224. MISSY=YES
  4225. MISNUM=MISNUM+1
  4226. IF ST.76~=ROCK & ST.77=0 THEN DO;MESS1='YOU SEEM TO BE OUT OF AMMO!'ST.163;SIGNAL COMBAT;END
  4227. ST.77=ST.77-1
  4228. XZX=VRND(1,5)
  4229. IF XZX=1 THEN MESS1='YOU ATTACK THE' UPPER(MS.1)
  4230. IF XZX=2 THEN MESS1='YOU TAKE CAREFUL AIM AT THE' UPPER(MS.1)
  4231. IF XZX=3 THEN MESS1='YOU LIFT YOUR' UPPER(ST.38) 'TO ATTACK POSITION AND BEGIN'
  4232. IF XZX=4 THEN MESS1='YOU EYE THE' UPPER(MS.1)' CAREFULLY AND THEN FIRE AT THEM!'
  4233. IF XZX=5 THEN MESS1='YOU ALLOW YOUR' UPPER(ST.38) 'TO DO WHAT IT WAS BUILT FOR'
  4234. NAL=TEMPMHACO-MS.10
  4235. ROLL=VRND(1,20)+1
  4236. IF ROLL>NAL THEN SIGNAL MISCONNECT
  4237. ZCZ=VRND(1,7)
  4238. IF ZCZ=1 THEN MESS2='YOU MISSED THE' UPPER(MS.1)', HOWEVER'ST.163
  4239. IF ZCZ=2 THEN MESS2= 'YOUR 'UPPER(ST.76)' GOES WIDE RIGHT OF THE' UPPER(MS.1)''ST.163 
  4240. IF ZCZ=3 THEN MESS2= 'YOUR 'UPPER(ST.76)' GOES WIDE LEFT'ST.163
  4241. IF ZCZ=4 THEN MESS2= 'YOUR ATTACK WITH THE 'UPPER(ST.38)' MISSES THE 'UPPER(MS.1) ''ST.163
  4242. IF ZCZ=5 THEN MESS2= 'THE' UPPER(MS.1) 'DUCKS BENEATH YOUR' UPPER(ST.76)''ST.163
  4243. IF ZCZ=6 THEN MESS2= 'THE' UPPER(MS.1) 'SOMEHOW DEFLECTS YOUR' UPPER(ST.76)'!'ST.163
  4244. IF ZCZ=7 THEN MESS2= 'YOUR' UPPER(ST.76) 'SOMEHOW DEFLECTS OFF THE' UPPER(MS.1)'S' UPPER(MS.11)'!'ST.163
  4245. IF MISNUM<TEMPAT THEN DO;MESS4='YOU ARE SKILLED ENOUGH TO ATTACK AGAIN, HOWEVER!'ST.163;END
  4246. IF MISNUM=TEMPAT THEN DO;MESS4='UNFORTUNATELY, IT IS NOW YOUR OPPONENT''S TURN'ST.163;END
  4247. SIGNAL COMBAT
  4248.  
  4249. MISCONNECT:
  4250. RD=VRND(1,8)
  4251. IF RD=1 THEN MESS2='YOU REALLY PIN-CUSHIONED THE' UPPER(MS.1)''ST.163
  4252. IF RD=2 THEN MESS2= 'YOUR' UPPER(ST.76) 'JUST NAILED THE' UPPER(MS.1)''ST.163
  4253. IF RD=3 THEN MESS2= 'YOU HIT THE' UPPER(MS.1) 'WITH YOUR' UPPER(ST.76)''ST.163
  4254. IF RD=4 THEN MESS2= 'YOU SLICED INTO THE' UPPER(MS.1)''ST.163
  4255. IF RD=5 THEN MESS2= 'YOU JUST REALLY TORE INTO THE' UPPER(MS.1)''ST.163
  4256. IF RD=6 THEN MESS2= 'YOUR ATTACK NAILED THE' UPPER(MS.1)''ST.163
  4257. IF RD=7 THEN MESS2= 'YOU ARE A HECK OF A MARKSMAN WITH A' UPPER(ST.38)'!'ST.163
  4258. IF RD=8 THEN MESS2= 'BLOOD FLIES EVERYWHERE FROM YOUR VOLLEY!'ST.163
  4259. MISDAMPLUS=TEMPDAMPLUS-4
  4260. IF MISDAMPLUS<0 THEN MISDAMPLUS=0
  4261. DAM=VRND(ST.41,ST.42)+MISDAMPLUS
  4262. MESS3='YOU DID' DAM 'POINTS OF DAMAGE!'
  4263. IF FXT=1 THEN DO;ATHP=MM11-DAM;MM11=MM11-DAM;END
  4264. IF FXT=2 THEN DO;ATHP=MM12-DAM;MM12=MM12-DAM;END
  4265. IF FXT=3 THEN DO;ATHP=MM13-DAM;MM13=MM13-DAM;END
  4266. IF FXT=4 THEN DO;ATHP=MM14-DAM;MM14=MM14-DAM;END
  4267. IF FXT=5 THEN DO;ATHP=MM15-DAM;MM15=MM15-DAM;END
  4268. IF FXT=6 THEN DO;ATHP=MM16-DAM;MM16=MM16-DAM;END
  4269. IF FXT=7 THEN DO;ATHP=MM17-DAM;MM17=MM17-DAM;END
  4270. IF FXT=8 THEN DO;ATHP=MM18-DAM;MM18=MM18-DAM;END
  4271. IF FXT=9 THEN DO;ATHP=MM19-DAM;MM19=MM19-DAM;END
  4272. SIGNAL MONDEAD
  4273.  
  4274. ATTACKED:
  4275. ATTY=YES
  4276. MISSY=NO
  4277. IF ATNUM=TEMPAT THEN DO;ATNUM=0;SIGNAL MONTURN;END
  4278. ATNUM=ATNUM+1
  4279. XZX=VRND(1,6)
  4280. IF XZX=1 THEN MESS1='YOU ATTACK THE' UPPER(MS.1)
  4281. IF XZX=2 THEN MESS1='YOU LUNGE FOR THE' UPPER(MS.1)' WITH FIRE IN YOUR EYES!'
  4282. IF XZX=3 THEN MESS1='YOU LIFT YOUR' UPPER(ST.33) 'TO ATTACK POSITION AND BEGIN'
  4283. IF XZX=4 THEN MESS1='YOU EYE THE' UPPER(MS.1)' CAREFULLY AND THEN LEAP AT THEM!'
  4284. IF XZX=5 THEN MESS1='YOU ALLOW YOUR' UPPER(ST.33) 'TO DO WHAT IT WAS BUILT FOR'
  4285. IF XZX=6 THEN MESS1='YOU GATHER YOUR FACULTIES AND LEAP INTO THE FRAY'
  4286. NAL=TEMPTHACO-MS.10
  4287. ROLL=VRND(1,20)+1
  4288. IF ROLL>NAL THEN SIGNAL CONNECT
  4289. ZCZ=VRND(1,6)
  4290. IF ZCZ=1 THEN MESS2='YOU MISSED THE' UPPER(MS.1)', HOWEVER'ST.163
  4291. IF ZCZ=2 THEN MESS2='YOUR ATTACK GOES WIDE RIGHT OF THE' UPPER(MS.1)''ST.163 
  4292. IF ZCZ=3 THEN MESS2='YOUR ASSAULT GOES WIDE LEFT'ST.163
  4293. IF ZCZ=4 THEN MESS2='YOUR ATTACK WITH THE 'ST.33' MISSES THE 'UPPER(MS.1) ''ST.163
  4294. IF ZCZ=5 THEN MESS2='THE' UPPER(MS.1) 'DUCKS BENEATH YOUR ATTACK'ST.163
  4295. IF ZCZ=6 THEN MESS2='THE' UPPER(MS.1) 'SOMEHOW DEFLECTS YOUR BLOW!'ST.163
  4296. IF ZCZ=7 THEN MESS2= 'YOUR' ST.33 'SOMEHOW DEFLECTS OFF THE' MS.1'S' MS.11'!'ST.163
  4297. IF ATNUM<TEMPAT THEN DO;MESS4='YOU ARE SKILLED ENOUGH TO ATTACK AGAIN, HOWEVER!'ST.163;END
  4298. IF ATNUM=TEMPAT THEN DO;MESS4='UNFORTUNATELY, IT IS NOW YOUR OPPONENT''S TURN'ST.163;END
  4299. SIGNAL COMBAT
  4300.  
  4301. CONNECT:
  4302. BSTB=NO
  4303. RD=VRND(1,8)
  4304. IF RD=1 THEN MESS2='YOU REALLY POUNDED THE' UPPER(MS.1)''ST.163
  4305. IF RD=2 THEN MESS2='YOUR' UPPER(ST.33) 'JUST NAILED THE' UPPER(MS.1)''ST.163
  4306. IF RD=3 THEN MESS2='YOU HIT THE' UPPER(MS.1) 'WITH YOUR' UPPER(ST.33)''ST.163
  4307. IF RD=4 THEN MESS2='YOU SLICED INTO THE' UPPER(MS.1)''ST.163
  4308. IF RD=5 THEN MESS2='YOU JUST REALLY TORE INTO THE' UPPER(MS.1)''ST.163
  4309. IF RD=6 THEN MESS2='YOUR ATTACK NAILED THE' UPPER(MS.1)''ST.163
  4310. IF RD=7 THEN MESS2='YOU ARE GREAT BATTLING WITH A' UPPER(ST.33)'!'ST.163
  4311. IF RD=8 THEN MESS2='BLOOD FLIES EVERYWHERE FROM YOUR ATTACK!'ST.163
  4312. DAM=VRND(ST.36,ST.37)+TEMPDAMPLUS
  4313. BOTB=VRND(1,20)
  4314. IF UPPER(ST.3)=ROGUE & BOTB<ST.4 | UPPER(ST.3)=NINJA & BOTB<ST.4 THEN DO;BSTB=YES;DAM=DAM*ST.57;END
  4315. IF FCT=1 THEN DO;ATHP=MM11-DAM;MM11=MM11-DAM;END
  4316. IF FCT=2 THEN DO;ATHP=MM12-DAM;MM12=MM12-DAM;END
  4317. IF FCT=3 THEN DO;ATHP=MM13-DAM;MM13=MM13-DAM;END
  4318. IF FCT=4 THEN DO;ATHP=MM14-DAM;MM14=MM14-DAM;END
  4319. IF FCT=5 THEN DO;ATHP=MM15-DAM;MM15=MM15-DAM;END
  4320. IF FCT=6 THEN DO;ATHP=MM16-DAM;MM16=MM16-DAM;END
  4321. IF FCT=7 THEN DO;ATHP=MM17-DAM;MM17=MM17-DAM;END
  4322. IF FCT=8 THEN DO;ATHP=MM18-DAM;MM18=MM18-DAM;END
  4323. IF FCT=9 THEN DO;ATHP=MM19-DAM;MM19=MM19-DAM;END
  4324. IF BSTB=NO THEN MESS3='YOU DID' DAM 'POINTS OF DAMAGE!'ST.163
  4325. IF BSTB=YES THEN DO;BSTB=NO;MESS3='YOU BACKSTABBED!!! DAMAGE WAS' DAM 'POINTS!'ST.163;END
  4326. SIGNAL MONDEAD
  4327.  
  4328. TURNY:
  4329. IF NUM>0 & MM1~=' ' THEN DO;MM1='                 ';END
  4330. IF NUM>1 & MM2~=' ' THEN DO;MM2='                 ';END
  4331. IF NUM>2 & MM3~=' ' THEN DO;MM3='                 ';END
  4332. IF NUM>3 & MM4~=' ' THEN DO;MM4='                 ';END
  4333. IF NUM>4 & MM5~=' ' THEN DO;MM5='                 ';END
  4334. IF NUM>5 & MM6~=' ' THEN DO;MM6='                 ';END
  4335. IF NUM>6 & MM7~=' ' THEN DO;MM7='                 ';END
  4336. IF NUM>7 & MM8~=' ' THEN DO;MM8='                 ';END
  4337. IF NUM>8 & MM9~=' ' THEN DO;MM9='                 ';END
  4338. SIGNAL MONTURN
  4339.  
  4340. MONDEAD:
  4341. IF MONUM=0 THEN DO;ZED=YES;SIGNAL COMBAT1;END
  4342. IF ATHP>0 & ATTY=YES & ATNUM<TEMPAT THEN DO;MESS4='YOU ARE SKILLED ENOUGH TO ATTACK AGAIN!'ST.163;SIGNAL COMBAT;END
  4343. IF ATHP>0 & ATTY=YES & ATNUM=TEMPAT THEN DO;MESS4='UNFORTUNATELY, IT IS NOW YOUR OPPONENT''S TURN'ST.163;SIGNAL COMBAT;END
  4344. IF ATHP>0 & MISSY=YES & MISNUM<MSTS THEN DO;MESS4='YOU ARE SKILLED ENOUGH TO ATTACK AGAIN!'ST.163;SIGNAL COMBAT;END
  4345. IF ATHP>0 & MISSY=YES & MISNUM=MSTS THEN DO;MESS4='UNFORTUNATELY, IT IS NOW YOUR OPPONENT''S TURN'ST.163;SIGNAL COMBAT;END
  4346. MONUM=MONUM-1
  4347. MESS4=''MS.21 ''ST.163
  4348. EXP=MS.16
  4349. XPAP=EXP/ST.168
  4350. PARSE VAR XPAP SEEXP"."REMDS
  4351. EEXP=EEXP+SEEXP
  4352. EXP=0
  4353. IF FCT=1 THEN MM1='                  ' 
  4354. IF FCT=2 THEN MM2='                  '
  4355. IF FCT=3 THEN MM3='                  '
  4356. IF FCT=4 THEN MM4='                  '
  4357. IF FCT=5 THEN MM5='                  '
  4358. IF FCT=6 THEN MM6='                  '
  4359. IF FCT=7 THEN MM7='                  '
  4360. IF FCT=8 THEN MM8='                  '
  4361. IF FCT=9 THEN MM9='                  '
  4362. IF FXT=1 THEN MM1='                  ' 
  4363. IF FXT=2 THEN MM2='                  '
  4364. IF FXT=3 THEN MM3='                  '
  4365. IF FXT=4 THEN MM4='                  '
  4366. IF FXT=5 THEN MM5='                  '
  4367. IF FXT=6 THEN MM6='                  '
  4368. IF FXT=7 THEN MM7='                  '
  4369. IF FXT=8 THEN MM8='                  '
  4370. IF FXT=9 THEN MM9='                  '
  4371. IF MONUM=0 THEN DO;ZED=YES;SIGNAL COMBAT1;END
  4372. SIGNAL COMBAT
  4373.  
  4374. BATTLEOVER:
  4375. UPMORE=YES
  4376. ZED=NO
  4377. ST.5=ST.5+EEXP
  4378. IF ST.5>=ST.6 THEN DO;EEXP=0;SIGNAL LEVELGAIN;END
  4379. EEXP=0
  4380. UPMORE=NO
  4381. SIGNAL SHUFFLE
  4382.  
  4383. BOOTY:
  4384. FOUGHT=FLAG
  4385. IF ZED=YES & ST.127=ON THEN DO;SFI SPATH||'VICTORY';TT 'W2';END
  4386. TT 'F1'
  4387. SFI SPATH||'CHEST'
  4388. LEV=ST.4
  4389. TTYPE=0
  4390. GTYPE=0
  4391. WTYPE=0
  4392. ATYPE=0
  4393. ITYPE=0
  4394. IF MS.17=1 THEN TTYPE=5*LEV*MCASH
  4395. IF MS.17=2 THEN TTYPE=8*LEV*MCASH
  4396. IF MS.17=3 THEN TTYPE=10*LEV*MCASH
  4397. IF MS.17=4 THEN TTYPE=20*LEV*MCASH
  4398. IF MS.17=5 THEN TTYPE=50*LEV*MCASH
  4399. IF MS.17>=6 THEN TTYPE=100*LEV*MCASH
  4400. IF MS.17=7 THEN GTYPE=VRND(1,4)
  4401. IF MS.17=8 THEN GTYPE=VRND(2,6)
  4402. IF MS.17>=9 THEN GTYPE=VRND(4,10)
  4403. IF MS.17=10 THEN ATYPE=VRND(1,4)
  4404. IF MS.17>=11 THEN ATYPE=VRND(2,6)
  4405. IF MS.17=12 THEN ITYPE=VRND(2,4)
  4406. IF MS.17=13 THEN ITYPE=VRND(19,24)
  4407. IF MS.17>=14 THEN ITYPE=VRND(13,17)
  4408. IF MS.17=15 THEN WTYPE=VRND(1,6)
  4409. IF MS.17=16 THEN WTYPE=VRND(5,7)
  4410. IF MS.17=17 THEN WTYPE=8
  4411. IF MS.17=18 THEN WTYPE=9
  4412. IF MS.17=19 THEN WTYPE=10
  4413. IF MS.17=20 THEN WTYPE=11
  4414. IF MS.17=21 THEN WTYPE=12
  4415. IF MS.17=22 THEN WTYPE=13
  4416. IF MS.17=23 THEN WTYPE=14
  4417. IF MS.17=24 THEN WTYPE=15
  4418. IF MS.17=25 THEN WTYPE=16
  4419. IF ST.162>0 THEN TTYPE=0
  4420. ST.170=ST.170+TTYPE
  4421. IF GTYPE~=0 THEN ST.154=ST.154+GTYPE
  4422. IF ATYPE~=0 THEN ST.155=ST.155+ATYPE
  4423. IF ITYPE~=0 THEN DO;CALL OPEN(1,IPATH||'MITEM','R');DO I=1 TO 24;MTM.I=READLN(1);END;CALL CLOSE(1);CALL OPEN(1,IPATH||MTM.ITYPE,'R');DO I=1 TO 10;IST.I=READLN(1);END;CALL CLOSE(1);END
  4424. IF WTYPE~=0 THEN DO;CALL OPEN(1,WPATH||'MWEP','R');DO I=1 TO 20;WEP.I=READLN(1);END;CALL CLOSE(1);CALL OPEN(1,WPATH||WEP.WTYPE,'R');DO I=1 TO 9;MW.I=READLN(1);END;CALL CLOSE(1);END
  4425. TT 'N2CAYOU FIND THE FOLLOWING:'
  4426. IF EEXP~=0 THEN TT 'CAEXPERIENCE POINTS:CF' EEXP 
  4427. IF TTYPE~=0 THEN TT 'N1CB'TTYPE 'CFPIECES OF CBGOLD'
  4428. IF GTYPE~=0 THEN TT 'CF'GTYPE 'CEGEMS'
  4429. IF ATYPE~=0 THEN TT 'CF'ATYPE 'CFPIECES OFC9 JEWELRY'
  4430. IF ITYPE~=0 THEN TT 'CFAND ACD' IST.1
  4431. IF WTYPE~=0 THEN TT 'CFAND ACC' MW.1 
  4432. TT 'G1'
  4433. IF ITYPE~=0 THEN SIGNAL MITEMPICKUP
  4434. IF WTYPE~=0 THEN SIGNAL WEPICK
  4435. IF FUNDS=YES | FUNDZ=YES THEN SIGNAL SHUFFLE
  4436. SIGNAL BATTLEOVER
  4437.  
  4438. WEPICK:
  4439. IF ST.3=MONK THEN DO;TT 'N1CEMONKS ARE ONLY ALLOWED TO USE THEIR HANDS AS WEAPONS!W2';SIGNAL SHUFFLE;END
  4440. IF ST.3=WIZARD & MW.9=MISSILE THEN SIGNAL SORRYGUY
  4441. IF ST.3=WIZARDPRIEST & MW.9=MISSILE THEN SIGNAL SORRYGUY
  4442. IF ST.3=WIZARDPRIEST & MW.9=BLADE THEN SIGNAL SORRYGUY
  4443. IF ST.3=WITCH & MW.9=MISSILE THEN SIGNAL SORRYGUY
  4444. IF ST.3=WITCHPRIESTESS & MW.9=MISSILE THEN SIGNAL SORRYGUY
  4445. IF ST.3=WITCHPRIESTESS & MW.9=BLADE THEN SIGNAL SORRYGUY
  4446. IF ST.3=PRIESTESS & MW.9=MISSILE THEN SIGNAL SORRYGUY
  4447. IF ST.3=PRIESTESS & MW.9=BLADE THEN SIGNAL SORRYGUY
  4448. IF ST.3=PRIEST & MW.9=MISSILE THEN SIGNAL SORRYGUY
  4449. IF ST.3=PRIEST & MW.9=BLADE THEN SIGNAL SORRYGUY
  4450. IF ST.3=NINJA & MW.9=POLE THEN SIGNAL SORRYGUY
  4451. IF ST.3=ROGUE & MW.9=POLE THEN SIGNAL SORRYGUY
  4452. SX 'CADO YOU WISH TO REPLACE YOUR CURRENT WEAPON WITH THE NEW ONE? '
  4453. GETCHAR
  4454. YN=UPPER(RESULT)
  4455. IF YN=p THEN SIGNAL QUIT
  4456. IF YN='N' & ZED=YES THEN SIGNAL BATTLEOVER
  4457. IF YN='Y' & MW.9~=MISSILE THEN DO;OLDWEP=ST.33;ST.33=MW.1;ST.36=MW.2;ST.37=MW.3;ST.34=MW.6;ST.35=MW.7;WTYPE=0;PCKPU=YES;END
  4458. IF YN='Y' & MW.9=MISSILE THEN DO;OLDWEP=ST.38;ST.38=MW.1;ST.41=MW.2;ST.42=MW.3;ST.39=MW.6;ST.40=MW.7;ST.43=MW.4;WTYPE=0;PCKPU=YES;END
  4459. IF PCKPU=YES & MAP>0 THEN DO;LUUK.LOC=OLDWEP;PICKPU=NO;SIGNAL SVLUK;END
  4460. IF ZED=YES THEN SIGNAL BATTLEOVER
  4461. IF FUNDS=YES | FUNDZ=YES THEN SIGNAL SHUFFLE
  4462. SIGNAL BATTLEOVER
  4463.  
  4464. MITEMPICKUP:
  4465. IF UPPER(MTM.ITYPE)=UPPER(ITEM.1) THEN DO;AMOUNT.1=AMOUNT.1+1;SIGNAL KIXBAK;END
  4466. IF UPPER(MTM.ITYPE)=UPPER(ITEM.2) THEN DO;AMOUNT.2=AMOUNT.2+1;SIGNAL KIXBAK;END
  4467. IF UPPER(MTM.ITYPE)=UPPER(ITEM.3) THEN DO;AMOUNT.3=AMOUNT.3+1;SIGNAL KIXBAK;END
  4468. IF UPPER(MTM.ITYPE)=UPPER(ITEM.4) THEN DO;AMOUNT.4=AMOUNT.4+1;SIGNAL KIXBAK;END
  4469. IF UPPER(MTM.ITYPE)=UPPER(ITEM.5) THEN DO;AMOUNT.5=AMOUNT.5+1;SIGNAL KIXBAK;END
  4470. IF UPPER(MTM.ITYPE)=UPPER(ITEM.6) THEN DO;AMOUNT.6=AMOUNT.6+1;SIGNAL KIXBAK;END
  4471. IF UPPER(MTM.ITYPE)=UPPER(ITEM.7) THEN DO;AMOUNT.7=AMOUNT.7+1;SIGNAL KIXBAK;END
  4472. IF UPPER(MTM.ITYPE)=UPPER(ITEM.8) THEN DO;AMOUNT.8=AMOUNT.8+1;SIGNAL KIXBAK;END
  4473. IF UPPER(MTM.ITYPE)=UPPER(ITEM.9) THEN DO;AMOUNT.9=AMOUNT.9+1;SIGNAL KIXBAK;END
  4474. IF UPPER(MTM.ITYPE)=UPPER(ITEM.10) THEN DO;AMOUNT.10=AMOUNT.10+1;SIGNAL KIXBAK;END
  4475. IF ITEM.10~=' ' THEN DO;TT 'CAYOUR BACKBACK IS FULL!!W1';SIGNAL KIXBAK;END
  4476. IF ITEM.1=' ' THEN DO;ITEM.1=MTM.ITYPE;WEIGHT.1=IST.2;AMOUNT.1=1;VALUE.1=IST.3;SIGNAL KIXBAK;END
  4477. IF ITEM.2=' ' THEN DO;ITEM.2=MTM.ITYPE;WEIGHT.2=IST.2;AMOUNT.2=1;VALUE.2=IST.3;SIGNAL KIXBAK;END
  4478. IF ITEM.3=' ' THEN DO;ITEM.3=MTM.ITYPE;WEIGHT.3=IST.2;AMOUNT.3=1;VALUE.3=IST.3;SIGNAL KIXBAK;END
  4479. IF ITEM.4=' ' THEN DO;ITEM.4=MTM.ITYPE;WEIGHT.4=IST.2;AMOUNT.4=1;VALUE.4=IST.3;SIGNAL KIXBAK;END
  4480. IF ITEM.5=' ' THEN DO;ITEM.5=MTM.ITYPE;WEIGHT.5=IST.2;AMOUNT.5=1;VALUE.5=IST.3;SIGNAL KIXBAK;END
  4481. IF ITEM.6=' ' THEN DO;ITEM.6=MTM.ITYPE;WEIGHT.6=IST.2;AMOUNT.6=1;VALUE.6=IST.3;SIGNAL KIXBAK;END
  4482. IF ITEM.7=' ' THEN DO;ITEM.7=MTM.ITYPE;WEIGHT.7=IST.2;AMOUNT.7=1;VALUE.7=IST.3;SIGNAL KIXBAK;END
  4483. IF ITEM.8=' ' THEN DO;ITEM.8=MTM.ITYPE;WEIGHT.8=IST.2;AMOUNT.8=1;VALUE.8=IST.3;SIGNAL KIXBAK;END
  4484. IF ITEM.9=' ' THEN DO;ITEM.9=MTM.ITYPE;WEIGHT.9=IST.2;AMOUNT.9=1;VALUE.9=IST.3;SIGNAL KIXBAK;END
  4485. IF ITEM.10=' ' THEN DO;ITEM.10=MTM.ITYPE;WEIGHT.10=IST.2;AMOUNT.10=1;VALUE.10=IST.3;SIGNAL KIXBAK;END
  4486. SIGNAL KIXBAK
  4487.  
  4488. KIXBAK:
  4489. IF WTYPE~=0 THEN SIGNAL WEPICK
  4490. IF ZED=YES THEN SIGNAL BATTLEOVER
  4491. IF FUNDS=YES | FUNDZ=YES THEN SIGNAL SHUFFLE
  4492. SIGNAL BATTLEOVER
  4493.  
  4494. LEVELGAIN:
  4495. ST.4=ST.4+1
  4496. TT 'N3CBCONGRATULATIONS,' ST.1 '! YOU ARE NOW LEVEL' ST.4'W2'
  4497. PLAY=YES
  4498. IF ST.6<600000 THEN ST.6=ST.6*2
  4499. IF ST.6>600000 THEN ST.6=ST.6+300000
  4500. IF ST.3=NINJA THEN SIGNAL ROGUESKILLS
  4501. IF ST.3=PRIEST THEN SIGNAL PRIESTSKILLS
  4502. IF ST.3=WARRIOR THEN SIGNAL WARRIORSKILLS
  4503. IF ST.3=WIZARD THEN SIGNAL MAGICSKILLS
  4504. IF ST.3=MONK THEN SIGNAL MONKSKILLS
  4505. IF ST.3=ANTI KNIGHT THEN SIGNAL WARRIORSKILLS
  4506. IF ST.3=KNIGHT THEN SIGNAL WARRIORSKILLS
  4507. IF ST.3=GUIDE THEN SIGNAL WARRIORSKILLS
  4508. IF ST.3=ROGUE THEN SIGNAL ROGUESKILLS
  4509. IF ST.3=WARRIORROGUE THEN SIGNAL ROGUESKILLS
  4510. IF ST.3=WARRIORWIZARD THEN SIGNAL MAGICSKILLS
  4511. IF ST.3=WARRIORWIZARDROGUE THEN SIGNAL MAGICSKILLS
  4512. IF ST.3=WARRIORPRIEST THEN SIGNAL PRIESTSKILLS
  4513. IF ST.3=WIZARDROGUE THEN SIGNAL MAGICSKILLS
  4514. IF ST.3=WIZARDPRIEST THEN SIGNAL PRIESTSKILLS
  4515. IF ST.3=AMAZONIAN THEN SIGNAL WARRIORSKILLS
  4516. IF ST.3=PRIESTESS THEN SIGNAL PRIESTSKILLS
  4517. IF ST.3=AMAZONIANWITCH THEN SIGNAL MAGICSKILLS
  4518. IF ST.3=AMAZONIANWITCHROGUE THEN SIGNAL MAGICSKILLS
  4519. IF ST.3=AMAZONIAN PRIESTESS THEN SIGNAL PRIESTSKILLS
  4520. IF ST.3=AMAZONIANROGUE  THEN SIGNAL ROGUESKILLS
  4521. IF ST.3=WITCHPRIESTESS THEN SIGNAL PRIESTSKILLS
  4522. IF ST.3=WITCHROGUE THEN SIGNAL MAGICSKILLS
  4523. IF ST.3=WITCH THEN SIGNAL MAGICSKILLS
  4524.  
  4525. MONMISS:
  4526. IF MONGO=MS.4 THEN DO;MONGO=0;MOVP=TEMPMOVE;ATNUM=0;SIGNAL COMBAT;END
  4527. IF MONGO=MONUM THEN DO;MONGO=0;MOVP=TEMPMOVE;ATNUM=0;SIGNAL COMBAT;END
  4528. MONGO=MONGO+1
  4529. SXP=MS.4
  4530. IF SXP>MONUM THEN SXP=MONUM
  4531. IF SXP>1 & MONGO=1 THEN MESS1=''SXP' 'UPPER(MS.1)'S START LAUNCHING ARROWS AT YOU!'ST.163
  4532. IF MONGO>2 THEN MESS1='YET ANOTHER' UPPER(MS.1) 'BEGINS FIRING!'
  4533. IF MONGO=2 THEN MESS1='A SECOND' UPPER(MS.1) 'FIRES AN ARROW AT YOU!'
  4534. IF MONGO=1 THEN MESS1='THE' UPPER(MS.1) 'FIRES AT YOU!'
  4535. MNAL=MS.15-TEMPAC
  4536. MROLL=VRND(1,20)+1
  4537. IF MROLL>MNAL THEN SIGNAL MONCONNECT
  4538. MESS2='...BUT MISSES HIS ATTACK!'ST.163
  4539. SIGNAL MONTURN
  4540.  
  4541. MONTURN:
  4542. IF MISSY=YES & MISNUM=MSTS THEN DO;MISNUM=0;MISSY=NO;SIGNAL MONTURN;END
  4543. IF ATTY=YES & ATNUM=TEMPAT THEN DO;ATNUM=0;ATTY=NO;SIGNAL MONTURN;END
  4544. COND=ST.50
  4545. IF SPLD=YES THEN SIGNAL COMBATPREP
  4546. NME='BC'LEFT(ST.1' ',20)''
  4547. RACE='BC'ST.2''
  4548. CLASS='BC'ST.3''
  4549. LEVEL='BC'ST.4''
  4550. CLRC1='BC'XXXXXXXXXX''
  4551. CNDE='BC'COND''
  4552. CLRC2='BC'XXXXX''
  4553. HELTH='BC'ST.26''
  4554. ATX='BC'TEMPAT''
  4555. THAC='BC'TEMPTHACO''
  4556. MHAC='BC'TEMPMHACO''
  4557. XP='BC'LEFT(EEXP' ',6)''
  4558. AC='BC'TEMPAC''
  4559. DAW='BC'ST.36' TO 'ST.37'+'TEMPDAMPLUS''
  4560. DWM='BC'ST.41' TO 'ST.42'+'MISDAMPLUS''
  4561. CLRC3='BC'XXXXX''
  4562. MVD='BC'MOVP''
  4563. CLRC4='BC'XXXX''
  4564. AMMO='BC'ST.77''
  4565. CLRC5='BC'XXXX''
  4566. DIST='BC'DIS''
  4567. MPR1='BC'MM1''
  4568. MPR2='BC'MM2''
  4569. MPR3='BC'MM3''
  4570. MPR4='BC'MM4''
  4571. MPR5='BC'MM5''
  4572. MPR6='BC'MM6''
  4573. MPR7='BC'MM7''
  4574. MPR8='BC'MM8''
  4575. MPR9='BC'MM9''
  4576. MXS1='BC'MESS1''
  4577. MXS2='BC'MESS2''
  4578. MXS3='BC'MESS3''
  4579. MXS4='BC'MESS4''
  4580. TT 'F0'NME
  4581. TT 'F0'RACE
  4582. TT 'F0'CLASS
  4583. TT 'F0'LEVEL
  4584. TT 'F0'CLRC1
  4585. TT 'F0'CLRC2
  4586. TT 'F0'CLRC3
  4587. TT 'F0'CLRC4
  4588. TT 'F0'CLRC5
  4589. TT 'F0'CNDE
  4590. TT 'F0'MPR1
  4591. TT 'F0'MPR2
  4592. TT 'F0'MPR3
  4593. TT 'F0'MPR4
  4594. TT 'F0'MPR5
  4595. TT 'F0'MPR6
  4596. TT 'F0'MPR7
  4597. TT 'F0'MPR8
  4598. TT 'F0'MPR9
  4599. TT 'F0'HELTH
  4600. TT 'F0'ATX
  4601. TT 'F0'THAC
  4602. TT 'F0'MHAC
  4603. TT 'F0'XP
  4604. TT 'F0'AC
  4605. TT 'F0'DAW
  4606. TT 'F0'DWM
  4607. TT 'F0'MVD
  4608. TT 'F0'AMMO
  4609. TT 'F0'DIST
  4610. TT 'F0'CLEAR1
  4611. TT 'F0'CLEAR2
  4612. TT 'F0'CLEAR3
  4613. TT 'F0'CLEAR4
  4614. TT 'F0'MXS1
  4615. TT 'F0'MXS2
  4616. TT 'F0'MXS3
  4617. TT 'F0'MXS4
  4618. IF MONUM>0 THEN DO;MESS1=CLEARA;MESS2=CLEARA;MESS3=CLEARA;MESS4=CLEARA;END
  4619. IF MONUM<1 THEN SIGNAL BOOTY
  4620. IF MONGO=MS.4 THEN DO;MONGO=0;MOVP=TEMPMOVE;ATNUM=0;SIGNAL COMBAT;END
  4621. IF MONGO=MONUM THEN DO;MONGO=0;MOVP=TEMPMOVE;ATNUM=0;SIGNAL COMBAT;END
  4622. MONGO=MONGO+1
  4623. SXP=MS.4
  4624. IF MM1=HEX & XM1~=DID THEN DO;MESS1='THE FIRST' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'            'ST.163;XM1=DID;SIGNAL MONTURN;END
  4625. IF MM2=HEX & XM2~=DID THEN DO;MESS1='THE SECOND' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'           'ST.163;XM2=DID;SIGNAL MONTURN;END
  4626. IF MM3=HEX & XM3~=DID THEN DO;MESS1='THE THIRD' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'            'ST.163;XM3=DID;SIGNAL MONTURN;END
  4627. IF MM4=HEX & XM4~=DID THEN DO;MESS1='THE FOURTH' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'           'ST.163;XM4=DID;SIGNAL MONTURN;END
  4628. IF MM5=HEX & XM5~=DID THEN DO;MESS1='THE FIFTH' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'            'ST.163;XM5=DID;SIGNAL MONTURN;END
  4629. IF MM6=HEX & XM6~=DID THEN DO;MESS1='THE SIXTH' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'            'ST.163;XM6=DID;SIGNAL MONTURN;END
  4630. IF MM7=HEX & XM7~=DID THEN DO;MESS1='THE SEVENTH' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'          'ST.163;XM7=DID;SIGNAL MONTURN;END
  4631. IF MM8=HEX & XM8~=DID THEN DO;MESS1='THE EIGHTH' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'           'ST.163;XM8=DID;SIGNAL MONTURN;END
  4632. IF MM9=HEX & XM9~=DID THEN DO;MESS1='THE NINTH' UPPER(MS.1) 'WOULD ATTACK BUT IS' HEX'            'ST.163;XM9=DID;SIGNAL MONTURN;END
  4633. IF DIS>10 & MS.11=BOW THEN SIGNAL MONMISS
  4634. IF DIS>10 & MONUM>1 THEN DO;MESS1='THE' UPPER(MS.1)'S CHARGE TOWARDS YOU'ST.163;DIS=DIS-MS.23;END
  4635. IF DIS>10 & MONUM=1 THEN DO;MESS1='THE' UPPER(MS.1)' CHARGES TOWARDS YOU'ST.163;DIS=DIS-MS.23;END
  4636. IF DIS>10 THEN DO;MONGO=0;MOVP=TEMPMOVE;SIGNAL COMBAT;END
  4637. IF DIS<10 THEN DIS=10
  4638. IF SXP>MONUM THEN SXP=MONUM
  4639. IF SXP>1 & MONGO=1 THEN MESS1=''SXP' 'UPPER(MS.1)'S TRY TO SURROUND YOU!'ST.163
  4640. IF MONGO>2 THEN MESS1='YET ANOTHER' UPPER(MS.1) 'COMES AFTER YOU!'
  4641. IF MONGO=2 THEN MESS1='A SECOND' UPPER(MS.1) 'BARES DOWN ON YOU!'
  4642. IF MONGO=1 THEN MESS1='THE' UPPER(MS.1) 'LUNGES AT YOU!'
  4643. USE=VRND(1,100)
  4644. IF USE<MS.19 & MS.18~=NONE THEN SIGNAL MONSPECIAL
  4645. MNAL=MS.15-TEMPAC
  4646. MROLL=VRND(1,20)+1
  4647. IF MROLL>MNAL THEN SIGNAL MONCONNECT
  4648. IF MROLL=21 THEN SIGNAL MONCONNECT
  4649. MESS2='...BUT MISSES HIS ATTACK!'ST.163
  4650. SIGNAL MONTURN
  4651.  
  4652. MONCONNECT:
  4653. MDXM=VRND(MS.13,MS.14)
  4654. MSTXT=VRND(1,4)
  4655. IF MSTXT=1 THEN MESS2='...AND NAILED YOU FOR' MDXM 'POINTS OF DAMAGE!'ST.163
  4656. IF MSTXT=2 THEN MESS2='...AND HITS YOU WITH THEIR' MS.12 'FOR' MDXM 'POINTS OF DAMAGE!'ST.163
  4657. IF MSTXT=3 THEN MESS2='...AND 'MS.5 'YOU FOR' MDXM 'POINTS OF DAMAGE!'ST.163
  4658. IF MSTXT=4 THEN MESS2='...AND 'MS.5 'YOU FOR' MDXM 'POINTS OF DAMAGE WITH THEIR' MS.12'!'ST.163
  4659. ST.26=ST.26-MDXM
  4660. IF ST.26<1 THEN SIGNAL YOUDEAD
  4661. IF MS.18~=NONE & HELD<1 THEN SIGNAL MONSPECIAL
  4662. SIGNAL MONTURN
  4663.  
  4664. MONSPECIAL:
  4665. IF UPPER(MS.18)=CHARM THEN SIGNAL HOLDIT
  4666. IF UPPER(MS.18)=GAZE THEN SIGNAL HOLDIT
  4667. IF UPPER(MS.18)=PARALYZATION THEN SIGNAL HOLDIT
  4668. IF UPPER(MS.18)=DRAIN THEN SIGNAL DRAINED
  4669. IF UPPER(MS.18)=POISON THEN SIGNAL POISONED
  4670. SVXD=VRND(1,20)+1
  4671. IF SVXD>PHYSAVE THEN HALF=YES
  4672. SIGNAL DAMAGE
  4673.  
  4674. POISONED:
  4675. SVXD=VRND(1,20)+1
  4676. IF SVXD>PHYSAVE THEN DO;MESS2='THE' UPPER(MS.1) 'TRIED TO POISON YOU BUT FAILED!'ST.163;SIGNAL MONTURN;END
  4677. ST.50=POISONED
  4678. SIGNAL MONTURN
  4679.  
  4680. DRAINED:
  4681. SVXD=VRND(1,20)+1
  4682. IF SVXD>MAGSAVE THEN DO;MESS2='THE' UPPER(MS.1) 'TRIED TO DRAIN YOU OF LEVELS BUT FAILED!';SIGNAL MONTURN;END
  4683. MESS2='YIKES! THE' UPPER(MS.1) 'DRAINED YOU!! YOU HAVE JUST LOST A LEVEL'ST.163
  4684. ST.4=ST.4-1
  4685. LEXP=ST.5/2
  4686. ST.5=ST.5-LEXP
  4687. HPT=VRND(ST.28,ST.29)+ST.22
  4688. ST.26=ST.26-HPT
  4689. ST.27=ST.27-HPT
  4690. SIGNAL MONTURN
  4691.  
  4692. DAMAGE:
  4693. DAM=VRND(1,5)
  4694. DAM1=VRND(1,5)
  4695. DAM2=DAM+DAM1
  4696. DAM3=DAM2/2
  4697. DAM4=DAM3*ST.4
  4698. IF HALF=YES THEN DAM5=DAM4/2
  4699. PARSE VAR DAM4 DAMX'.'REMD
  4700. IF HALF=YES THEN DO;PARSE VAR DAM5 DAMX'.'REMD;HALF=NO;END
  4701. IF UPPER(MS.18)~=BREATH THEN MESS2='THE' UPPER(MS.1) 'HITS YOU WITH A' MS.18 'DOING' DAMX 'IN DAMAGE!'ST.163
  4702. IF UPPER(MS.18)=BREATH THEN MESS2='THE' UPPER(MS.1) 'HITS YOU WITH ITS' MS.18 'WEAPON' DAMX 'IN DAMAGE!'ST.163
  4703. IF UPPER(MS.18)~=BREATH & HALF=YES THEN MESS3='BUT THAT WAS JUST HALF DAMAGE THANKS TO YOUR PHYSICAL ENDURANCE!'ST.163
  4704. IF UPPER(MS.18)=BREATH & HALF=YES THEN MESS3='BUT THAT WAS JUST HALF DAMAGE THANKS TO YOUR PHYSICAL ENDURANCE!'ST.163
  4705. ST.26=ST.26-DAMX
  4706. SIGNAL MONTURN
  4707.  
  4708. HOLDIT:
  4709. SVXD=VRND(1,20)+1
  4710. IF SVXD>MAGSAVE & UPPER(MS.18)=PARALYZATION THEN DO;MESS2='THE' UPPER(MS.1) 'TRIED TO PARALYZE YOU BUT FAILED!'ST.163;SIGNAL MONTURN;END
  4711. IF SVXD>MAGSAVE & UPPER(MS.18)=CHARM THEN DO;MESS2='THE' UPPER(MS.1) 'TRIED TO CHARM YOU BUT FAILED!'ST.163;SIGNAL MONTURN;END
  4712. IF SVXD>MAGSAVE & UPPER(MS.18)=GAZE THEN DO;MESS2='THE' UPPER(MS.1) 'TRIED TO HYPNOTIZE YOU WITH HIS EYES BUT FAILED!'ST.163;SIGNAL MONTURN;END
  4713. HELD=VRND(4,10)-ST.4
  4714. IF HELD<1 THEN HELD=2
  4715. IF UPPER(MS.18)=PARALYZATION THEN COND=PARALYZED
  4716. IF UPPER(MS.18)=CHAMR THEN COND=CHARMED
  4717. IF UPPER(MS.18)=GAZE THEN COND=HYPNOTIZED
  4718. MESS2='YOU HAVE BEEN 'COND'!'ST.163
  4719. SIGNAL MONTURN
  4720.  
  4721. YOUDEAD:
  4722. IF POISONED~=YES THEN TT 'F1N3C9N3THAT LAST BLOW KILLED YOU...SORRY DUDE!'ST.163
  4723. IF POISONED=YES THEN TT 'F1N3C9ALL OF THAT POISON IN YOUR SYSTEM WAS TOO MUCH!'ST.163
  4724. ST.50=OKAY
  4725. ST.26=0
  4726. SFI SPATH||'DEAD'
  4727. TT 'W2'
  4728. SIGNAL QUIT1
  4729.  
  4730. NOTEBOOK:
  4731. TT 'F1'
  4732. SFI MPATH||'NOTEBOOK'
  4733. SX 'N1CA>>'
  4734. GETCHAR
  4735. NTB=RESULT
  4736. IF NTB=p THEN SIGNAL QUIT
  4737. IF NTB='Q' THEN DO;MAIN=YES;SIGNAL SHUFFLE;END
  4738. IF NTB='R' THEN SIGNAL READIT
  4739. IF NTB='W' THEN SIGNAL WRITEIT
  4740. SIGNAL NOTEBOOK
  4741.  
  4742. READIT:
  4743. IF EXISTS(NOTPATH||NAME)THEN SIGNAL READOK
  4744. TT 'F1CAYOU HAVE TO PUT AN ENTRY IN YOUR NOTEBOOK IN ORDER TO READ IT.W2'
  4745. SIGNAL NOTEBOOK
  4746.  
  4747. READOK:
  4748. TT 'F1N3CAREADING THE NOTEBOOK OFCF' ST.1'N2'
  4749. CALL OPEN(1,NOTPATH||NAME,'R')
  4750.  DO UNTIL EOF(1)=1
  4751.  ENTRY=READLN(1)
  4752.   IF ENTRY~='' THEN DO;TT 'N1CB'ENTRY;END
  4753. END
  4754. CALL CLOSE(1)
  4755. TT 'N2C9HIT A KEY WHEN YOU WISH TO GO ON...G1'
  4756. SIGNAL NOTEBOOK
  4757.  
  4758. WRITEIT:
  4759. QUERY 'F1N1CAYOU MAY ONLY ENTER A SINGLE LINE OF TEXT AT ONE TIME INTO YOURN1NOTEBOOK. HOWEVER, YOU CAN DO THIS AS OFTEN AS YOU WISH.N2CB>>CF '
  4760. ENTRY=RESULT
  4761. IF ENTRY=p THEN SIGNAL QUIT
  4762. IF ENTRY=' ' THEN SIGNAL NOTEBOOK
  4763. EL='W'
  4764. IF EXISTS(NOTPATH||NAME)=1 THEN EL='A'
  4765. CALL OPEN(1,NOTPATH||NAME,EL)
  4766. CALL WRITELN(1,ENTRY)
  4767. CALL CLOSE(1)
  4768. SIGNAL NOTEBOOK
  4769.  
  4770. VIEWCHAR:
  4771. MPD=ST.9-3
  4772. IF MPD<0 THEN MPD=0
  4773. THIT=ST.44-ST.8
  4774. MHIT=ST.45-ST.17
  4775. CALL OPEN(1,SPATH||ST.128,'R')
  4776. DO I=1 TO 23
  4777.  PIC.I=READLN(1)
  4778. END
  4779. CALL CLOSE(1)
  4780. IF ST.76=0 THEN ST.76=NIL
  4781. IF ST.127=OFF THEN DO;DO I=1 TO 22;PIC.I=' ';END;TT 'F1';END
  4782. TT 'A'PIC.1
  4783. TT ''PIC.2 'CDNAME :CE'LEFT(ST.1' ',18) 'CDSEX:CE'LEFT(ST.167' ',1) 'CBGOLD:CE'LEFT(ST.170' ',7)'CF'
  4784. TT ''PIC.3 'CDRACE :CE'LEFT(ST.2' ',13)' CDCLASS:CE'LEFT(ST.3' ',12)' CDLEVEL:CE'LEFT(ST.4' ',2)'CF'
  4785. TT ''PIC.4 'CDDEITY:CE'LEFT(ST.72' ',13)' CDRELIGION:CE'LEFT(ST.71' ',11)'CF'
  4786. TT ''PIC.5 'CDALIGN:CE'LEFT(ST.70' ',13)' CDHEIGHT:CE'LEFT(ST.73' ',3)'" CDWEIGHT:CE'ST.74'LBS.CF'
  4787. TT ''PIC.6 'C9MIGHT    :CF'LEFT(ST.7' ',2)' CCHIT BONUS:CF'LEFT(ST.8' ',2)' CCDAMAGE BONUS:CF'LEFT(ST.9' ',2)
  4788. TT ''PIC.7 'C9EDUCATION:CF'LEFT(ST.12' ',2)' CCMAGIC SPELL BONUS:CF'LEFT(ST.13' ',2)
  4789. TT ''PIC.8 'C9AGILITY  :CF'LEFT(ST.14' ',2)' CCAC BONUS:CF'LEFT(ST.15' ',2)' CCMOVE:CF'LEFT(ST.16' ',2)' CCMISSILE:CF'ST.17
  4790. TT ''PIC.9 'C9ETHICS   :CF'LEFT(ST.18' ',2)' CCPRIEST BONUS:CF'LEFT(ST.19' ',2)' CCSAVE BONUS:CF'ST.20
  4791. TT ''PIC.10 'C9ENDURANCE:CF'LEFT(ST.21' ',2)' CCHP BONUS:CF'LEFT(ST.22' ',2)' CCPHYS.SAVE BONUS:CF'ST.23
  4792. TT ''PIC.11 'C9CHARM    :CF'LEFT(ST.24' ',2)' CCHIRELING COMMAND:CF'ST.25'/LEVEL'
  4793. TT ''PIC.12 'CAEXPERIENCE    :CB' LEFT(ST.5' ',8)' CANEEDED XP:CB' LEFT(ST.6' ',8)'CF'
  4794. TT ''PIC.13 'CAARMOR NAME    :CB' LEFT(ST.31' ',20)'CF'
  4795. TT ''PIC.14 'CAARMOR CLASS   :CB' LEFT(ST.32' ',3)'CF'
  4796. TT ''PIC.15 'CAWEAPON NAME   :CB' LEFT(ST.33' ',14)'CA# ATT:CB' ST.169'CF'
  4797. TT ''PIC.16 'CAWEAPON DAMAGE :CB' LEFT(ST.36' ',2)'C9TOCB' LEFT(ST.37' ',2)'C9 +CB' ST.9'CF'                                                                  
  4798. TT ''PIC.17 'CAMISSILE NAME  :CB' LEFT(ST.38' ',14)'CA'ST.76'S:CB' ST.77'CF'
  4799. TT ''PIC.18 'CAMISSILE DAMAGE:CB' LEFT(ST.41' ',2)'C9TOCB' LEFT(ST.42' ',2)'C9 +CB' MPD'CF'
  4800. TT ''PIC.19 'CATHACO:CB' LEFT(THIT' ',3)' CAMISSILE THACO:CB' MHIT'CF'
  4801. TT ''PIC.20 'CEHEALTH:CF' LEFT(ST.26' ',3)' CECONDITION:CF' LEFT(ST.50' ',6) 'CEDIE SIDE:CF' ST.29'CF'
  4802. TT ''PIC.21 'CESAVE VS. MAGIC:CD' LEFT(ST.49' ',3)' CESAVE VS. OTHER:CD' ST.47'CF'
  4803. TT ''PIC.22'                 C1HIT ANY KEY TO CONTINUE...G1F1'
  4804. IF ST.3=WARRIOR THEN SIGNAL BACKPACK
  4805.  
  4806. STUFF:
  4807. ST1=0
  4808. ST2=0
  4809. ST3=0
  4810. ST4=0
  4811. ST5=0
  4812. ST6=0
  4813. ST7=0
  4814. ST8=0
  4815. IF ST.98=RELIGIOUS THEN DO;ST1=ST.81;ST2=ST.82;ST3=ST.83;ST4=ST.84;ST5=ST.85;ST6=ST.86;ST7=ST.87;ST8=ST.88;END
  4816. IF ST.98=MAGIC THEN DO;ST1=ST.99;ST2=ST.100;ST3=ST.101;ST4=ST.102;ST5=ST.103;ST6=ST.104;ST7=ST.105;ST8=ST.106;END
  4817. IF ST.98=BOTH THEN DO;ST1=ST.81'/'ST.99;ST2=ST.82'/'ST.100;ST3=ST.83'/'ST.101;ST4=ST.84'/'ST.102;ST5=ST.85'/'ST.103;ST6=ST.86'/'ST.104;ST7=ST.87'/'ST.105;ST8=ST.88'/'ST.106;END
  4818. TT 'CEABILITIES:'
  4819. TT 'N1C9SPELLS'
  4820. TT 'CA1ST LEVEL AMOUNT:CF' LEFT(ST1' ',5) 'CA4TH LEVEL AMOUNT:CF' LEFT(ST4' ',5) 'CA7TH LEVEL AMOUNT:CF' LEFT(ST7' ',5)
  4821. TT 'CA2ND LEVEL AMOUNT:CF' LEFT(ST2' ',5) 'CA5TH LEVEL AMOUNT:CF' LEFT(ST5' ',5) 'CA8TH LEVEL AMOUNT:CF' LEFT(ST8' ',5)
  4822. TT 'CA3RD LEVEL AMOUNT:CF' LEFT(ST3' ',5) 'CA6TH LEVEL AMOUNT:CF' LEFT(ST6' ',5)
  4823. TT 'N1C9UNDEAD'
  4824. TT 'CAUNDEAD A:CF' LEFT(ST.60' ',2) 'CAUNDEAD B:CF' LEFT(ST.61' ',2) 'CAUNDEAD C:CF' LEFT(ST.62' ',2) 'CAUNDEAD D:CF' LEFT(ST.63' ',2) 'CAUNDEAD E:CF' LEFT(ST.64' ',2) 
  4825. TT 'CAUNDEAD F:CF' LEFT(ST.65' ',2) 'CADEMON  A:CF' LEFT(ST.66' ',2) 'CADIMMORAL  A:CF' LEFT(ST.67' ',2) 'CADEMON  B:CF' LEFT(ST.68' ',2) 'CADIMMORAL  B:CF' LEFT(ST.69' ',2) 
  4826. TT 'N1C9ROGUE SKILLS'
  4827. TT 'CAPICK POCKETS:CF' LEFT(ST.52' ',3)'CB% CAHIDE :CF' LEFT(ST.54' ',3)'CB% N1CAPICK LOCKS:CF' LEFT(ST.52' ',3)'CB% CACLIMB WALLS :CF' LEFT(ST.59' ',3)'CB% CATRAPS:CF' LEFT(ST.165' ',3)'CB%'
  4828. TT 'N1C1                                     HIT ANY KEY TO CONTINUE...G1F1'
  4829. SIGNAL BACKPACK
  4830.  
  4831. BACKPACK:
  4832. TT '^1CEMUNDANE:'
  4833. TT 'N1C9SKILLS'
  4834. TT 'CASMITH:CF' LEFT(ST.92' ',2) 'CARIDING:CF' LEFT(ST.93' ',2) 'CADISGUISE:CF' LEFT(ST.94' ',2) 'CAHUNTING:CF' LEFT(ST.95' ',2) 
  4835. TT 'CATREKING:CF' LEFT(ST.96' ',2) 'CALANGUAGE:CF' LEFT(ST.91' ',2) 'CAARCHITECT:CF' LEFT(ST.90' ',2) 'CASPECIAL:CF' ST.89
  4836. TT 'N1C9MOUNT'
  4837. TT 'CAMOUNT NAME:CF' LEFT(ST.126' ',15) 'CAMOUNT TYPE :CF' LEFT(ST.117' ',25)
  4838. TT 'CAMAXIMUM DISTANCE:CF' LEFT(ST.119' ',3)'/MILES CASPEED:CF' LEFT(ST.118' ',4) 'CAHEALTH:CF' LEFT(ST.122' ',3) 'CAAC:CF' LEFT(ST.125' ',3) 'CAARMOR:CF' LEFT(ST.124' ',10)
  4839. TT 'N1C9OTHER POSSESSIONS'
  4840. TT 'CEGEMS:CF' LEFT(ST.154' ',3) 'CDJEWELS:CF' LEFT(ST.155' ',3) 'CCLEFT RING:CF' LEFT(ST.157' ',15) 'CCRIGHT RING:CF' LEFT(ST.158' ',15)
  4841. TT 'N1C9BACKPACK CF/CA ITEM             AMOUNT       FIRST ITEM CHARGES'
  4842.  IF ITEM.1~=' ' THEN DO;TT 'CF'LEFT(ITEM.1' ',28) 'CB 'LEFT(AMOUNT.1' ',15) 'CB 'LEFT(WEIGHT.1' ',4);END
  4843.  IF ITEM.2~=' ' THEN DO;TT 'CF'LEFT(ITEM.2' ',28) 'CB 'LEFT(AMOUNT.2' ',15) 'CB 'LEFT(WEIGHT.2' ',4);END
  4844.  IF ITEM.3~=' ' THEN DO;TT 'CF'LEFT(ITEM.3' ',28) 'CB 'LEFT(AMOUNT.3' ',15) 'CB 'LEFT(WEIGHT.3' ',4);END
  4845.  IF ITEM.4~=' ' THEN DO;TT 'CF'LEFT(ITEM.4' ',28) 'CB 'LEFT(AMOUNT.4' ',15) 'CB 'LEFT(WEIGHT.4' ',4);END
  4846.  IF ITEM.5~=' ' THEN DO;TT 'CF'LEFT(ITEM.5' ',28) 'CB 'LEFT(AMOUNT.5' ',15) 'CB 'LEFT(WEIGHT.5' ',4);END
  4847.  IF ITEM.6~=' ' THEN DO;TT 'CF'LEFT(ITEM.6' ',28) 'CB 'LEFT(AMOUNT.6' ',15) 'CB 'LEFT(WEIGHT.6' ',4);END
  4848.  IF ITEM.7~=' ' THEN DO;TT 'CF'LEFT(ITEM.7' ',28) 'CB 'LEFT(AMOUNT.7' ',15) 'CB 'LEFT(WEIGHT.7' ',4);END
  4849.  IF ITEM.8~=' ' THEN DO;TT 'CF'LEFT(ITEM.8' ',28) 'CB 'LEFT(AMOUNT.8' ',15) 'CB 'LEFT(WEIGHT.8' ',4);END
  4850.  IF ITEM.9~=' ' THEN DO;TT 'CF'LEFT(ITEM.9' ',28) 'CB 'LEFT(AMOUNT.9' ',15) 'CB 'LEFT(WEIGHT.9' ',4);END
  4851.  IF ITEM.10~=' ' THEN DO;TT 'CF'LEFT(ITEM.10' ',28) 'CB 'LEFT(AMOUNT.10' ',15) 'CB 'LEFT(WEIGHT.10' ',4);END
  4852. TT 'N1C1                                 HIT ANY KEY TO GO ON...G1F1'
  4853. SIGNAL SHUFFLE
  4854.  
  4855. SELECTAPIC:
  4856. TT 'F1N3CASINCE IT WOULD BE NEARLY IMPOSSIBLE TO CREATE A DEFAULT C9PICTURE'
  4857. TT 'CAFOR THE HUNDREDS OF COMBINATIONS WHICH MAY EXIST AS FAR AS YOUR'
  4858. TT 'CHARACTER RACE, CLASS AND ALIGNMENT C9YOUCA MAY NOW CHOOSE ONE.'
  4859. TT 'N1C9YOU ARE A -->CF' ST.70' 'ST.2' 'ST.3
  4860. TT 'N1CAHERE ARE THE PICTURE TYPES:'
  4861. TT 'N1CB1. CFWIZARDS'
  4862. TT 'CB2. CFPRIESTS'
  4863. TT 'CB3. CFWARRIORS'
  4864. TT 'CB4. CFROGUES'
  4865. TT 'CB5. CFFEMALES'
  4866. TT 'N1CAOTHER CLASSES EITHER ALLOW ONLY ONE RACE OR HAVE DEFAULT PICTURES.'
  4867. SX 'N1CEWHICH SHALL IT BE?C9 [RETURN = QUIT]CF '
  4868. GETCHAR
  4869. PICS=UPPER(RESULT)
  4870. IF PICS=p THEN SIGNAL QUIT
  4871. IF PICS='1' THEN SIGNAL WIXP
  4872. IF PICS='2' THEN SIGNAL PIXP
  4873. IF PICS='3' THEN SIGNAL WARP
  4874. IF PICS='4' THEN SIGNAL ROXP
  4875. IF PICS='5' THEN SIGNAL FIXP
  4876. IF PICS='Q' THEN DO;MAIN=YES;SIGNAL MAIN;END
  4877. SIGNAL SELECTAPIC
  4878.  
  4879. WIXP:
  4880. WXP=NO
  4881. TT 'F1N1CAHERE IS A LIST OF THE AVAILABLE WIZARD PICTURES.'
  4882. TT 'SELECT THE C9# CAOF THE PICTURE YOU WISH TO VIEW'
  4883. TT 'OR C9P CAFOLLOWED BY THE NUMBER YOU WISH TO PICK AS'
  4884. TT 'YOUR CHARACTER PICTURE.'
  4885. TT 'N1CB1. CFHUMAN WIZARD'
  4886. TT 'CB2. CFWHITE ELF WIZARD'
  4887. TT 'CB3. CFBLOND ELF WIZARD'
  4888. TT 'CB4. CFLITHE ELF WIZARD'
  4889. QUERY 'N1CEWHICH FILE WILL YOU VIEW OR PICK?C9 [RETURN = QUIT] '
  4890. YYY=UPPER(RESULT)
  4891. IF YYY=p THEN SIGNAL QUIT
  4892. IF YYY='Q' THEN SIGNAL SELECTAPIC
  4893. IF YYY='' THEN SIGNAL SELECTAPIC
  4894. IF YYY='1' THEN DO;WXP=YES;YYY=HUMWIZARD;SIGNAL PICSEE;END
  4895. IF YYY='2' THEN DO;WXP=YES;YYY=WHITEWIZARD;SIGNAL PICSEE;END
  4896. IF YYY='3' THEN DO;WXP=YES;YYY=BLONDWIZARD;SIGNAL PICSEE;END
  4897. IF YYY='4' THEN DO;WXP=YES;YYY=LITHEWIZARD;SIGNAL PICSEE;END
  4898. IF YYY='P1' THEN DO;ST.128=HUMWIZARD;MAIN=YES;SIGNAL MAIN;END
  4899. IF YYY='P2' THEN DO;ST.128=WHITEWIZARD;MAIN=YES;SIGNAL MAIN;END
  4900. IF YYY='P3' THEN DO;ST.128=BLONDWIZARD;MAIN=YES;SIGNAL MAIN;END
  4901. IF YYY='P4' THEN DO;ST.128=LITHEWIZARD;MAIN=YES;SIGNAL MAIN;END
  4902. TT 'N1CAMAKE SURE YOU PLACE THE LETTER C9VCA ORC9 PCA BEFORE THE NUMBER YOU CHOOSE!W2'
  4903. SIGNAL WIXP
  4904.  
  4905. FIXP:
  4906. FXP=NO
  4907. TT 'F1N1CAHERE IS A LIST OF THE AVAILABLE FEMALE PICTURES.'
  4908. TT 'CABECAUSE PLAYERS ARE GENERALLY MALE ONLY A FEW PICTURES ARE'
  4909. TT 'AVAILABLE. THIS WAS NOT DONE AS AN ANTI-FEMINIST MANEUVER.'
  4910. TT 'IN FACT, THIS MIGHT BE THE ONLY CNET RPG THAT INCLUDES GENDER!'
  4911. TT 'SELECT THE C9# CAOF THE PICTURE YOU WISH TO VIEW'
  4912. TT 'OR C9P CAFOLLOWED BY THE NUMBER YOU WISH TO PICK AS'
  4913. TT 'YOUR CHARACTER PICTURE.'
  4914. TT 'N1CB1. CFBLOND PRIESTESS'
  4915. TT 'CB2. CFBRUNETTE PRIESTESS'
  4916. TT 'CB3. CFRED HEADED WITCH'
  4917. TT 'CB4. CFBLOND WITCH'
  4918. TT 'CB5. CFRED HEADED AMAZONIAN'
  4919. TT 'CB6. CFBLACK HAIRED AMAZONIAN'
  4920. TT 'CB7. CFRED HEADED ROGUE'
  4921. TT 'CB8. CFBLOND ROGUE'
  4922. QUERY 'N1CEWHICH FILE WILL YOU VIEW OR PICK?C9 [RETURN = QUIT] '
  4923. YYY=UPPER(RESULT)
  4924. IF YYY=p THEN SIGNAL QUIT
  4925. IF YYY='Q' THEN SIGNAL SELECTAPIC
  4926. IF YYY='' THEN SIGNAL SELECTAPIC
  4927. IF YYY='1' THEN DO;FXP=YES;YYY=FEMBLONDPRIEST;SIGNAL PICSEE;END
  4928. IF YYY='2' THEN DO;FXP=YES;YYY=FEMBLACKPRIEST;SIGNAL PICSEE;END
  4929. IF YYY='3' THEN DO;FXP=YES;YYY=FEMREDWIZARD;SIGNAL PICSEE;END
  4930. IF YYY='4' THEN DO;FXP=YES;YYY=FEMBLONDWIZARD;SIGNAL PICSEE;END
  4931. IF YYY='5' THEN DO;FXP=YES;YYY=FEMREDWARRIOR;SIGNAL PICSEE;END
  4932. IF YYY='6' THEN DO;FXP=YES;YYY=FEMBLACKWARRIOR;SIGNAL PICSEE;END
  4933. IF YYY='7' THEN DO;FXP=YES;YYY=FEMREDROGUE;SIGNAL PICSEE;END
  4934. IF YYY='8' THEN DO;FXP=YES;YYY=FEMBLONDROGUE;SIGNAL PICSEE;END
  4935. IF YYY='P1' THEN DO;ST.128=FEMBLONDPRIEST;MAIN=YES;SIGNAL MAIN;END
  4936. IF YYY='P2' THEN DO;ST.128=FEMBLACKPRIEST;MAIN=YES;SIGNAL MAIN;END
  4937. IF YYY='P3' THEN DO;ST.128=FEMREDWIZARD;MAIN=YES;SIGNAL MAIN;END
  4938. IF YYY='P4' THEN DO;ST.128=FEMBLONDWIZARD;MAIN=YES;SIGNAL MAIN;END
  4939. IF YYY='P5' THEN DO;ST.128=FEMREDWARRIOR;MAIN=YES;SIGNAL MAIN;END
  4940. IF YYY='P6' THEN DO;ST.128=FEMBLACKWARRIOR;MAIN=YES;SIGNAL MAIN;END
  4941. IF YYY='P7' THEN DO;ST.128=FEMREDROGUE;MAIN=YES;SIGNAL MAIN;END
  4942. IF YYY='P8' THEN DO;ST.128=FEMBLONDROGUE;MAIN=YES;SIGNAL MAIN;END
  4943. TT 'N1CAMAKE SURE YOU PLACE THE LETTER C9VCA ORC9 PCA BEFORE THE NUMBER YOU CHOOSE!W2'
  4944. SIGNAL FIXP
  4945.  
  4946. PIXP:
  4947. PRP=NO
  4948. TT 'F1N1CAHERE IS A LIST OF THE AVAILABLE PRIEST PICTURES.'
  4949. TT 'SELECT THE C9# CAOF THE PICTURE YOU WISH TO VIEW'
  4950. TT 'OR C9P CAFOLLOWED BY THE NUMBER YOU WISH TO PICK AS'
  4951. TT 'YOUR CHARACTER PICTURE.'
  4952. TT 'N1CB1. CFHUMAN MONK'
  4953. TT 'CB2. CFHUMAN & GNOME PRIEST'
  4954. TT 'CB3. CFBLOND & LITHE ELF PRIEST'
  4955. TT 'CB4. CFWHITE ELF PRIEST'
  4956. TT 'CB5. CFOGRE PRIEST'
  4957. TT 'CB6. CFDWARF PRIEST'
  4958. QUERY 'N1CEWHICH FILE WILL YOU VIEW OR PICK?C9 [RETURN = QUIT] '
  4959. YYY=UPPER(RESULT)
  4960. IF YYY=p THEN SIGNAL QUIT
  4961. IF YYY='Q' THEN SIGNAL SELECTAPIC
  4962. IF YYY='' THEN SIGNAL SELECTAPIC
  4963. IF YYY='1' THEN DO;PRP=YES;YYY=MONK;SIGNAL PICSEE;END
  4964. IF YYY='2' THEN DO;PRP=YES;YYY=HUMPRIEST;SIGNAL PICSEE;END
  4965. IF YYY='3' THEN DO;PRP=YES;YYY=BLONDPRIEST;SIGNAL PICSEE;END
  4966. IF YYY='4' THEN DO;PRP=YES;YYY=WHITEPRIEST;SIGNAL PICSEE;END
  4967. IF YYY='5' THEN DO;PRP=YES;YYY=OGREPRIEST;SIGNAL PICSEE;END
  4968. IF YYY='6' THEN DO;PRP=YES;YYY=DWARFPRIEST;SIGNAL PICSEE;END
  4969. IF YYY='P1' THEN DO;ST.128=MONK;MAIN=YES;SIGNAL MAIN;END
  4970. IF YYY='P2' THEN DO;ST.128=HUMANPRIEST;MAIN=YES;SIGNAL MAIN;END
  4971. IF YYY='P3' THEN DO;ST.128=BLONDPRIEST;MAIN=YES;SIGNAL MAIN;END
  4972. IF YYY='P4' THEN DO;ST.128=WHITEPRIEST;MAIN=YES;SIGNAL MAIN;END
  4973. IF YYY='P5' THEN DO;ST.128=OGREPRIEST;MAIN=YES;SIGNAL MAIN;END
  4974. IF YYY='P6' THEN DO;ST.128=DWARFPRIEST;MAIN=YES;SIGNAL MAIN;END
  4975. TT 'N1CAMAKE SURE YOU PLACE THE LETTER C9VCA ORC9 PCA BEFORE THE NUMBER YOU CHOOSE!W2'
  4976. SIGNAL PIXP
  4977.  
  4978. WARP:
  4979. WAP=NO
  4980. TT 'F1N1CAHERE IS A LIST OF THE AVAILABLE FIGHTER PICTURES.'
  4981. TT 'SELECT THE C9# CAOF THE PICTURE YOU WISH TO VIEW'
  4982. TT 'OR C9P CAFOLLOWED BY THE NUMBER YOU WISH TO PICK AS'
  4983. TT 'YOUR CHARACTER PICTURE.'
  4984. TT 'N1CB1. CFHUMAN GUIDE'
  4985. TT 'CB2. CFHUMAN ANTI KNIGHT'
  4986. TT 'CB3. CFHUMAN KNIGHT & WARRIOR'
  4987. TT 'CB4. CFHUMAN IMMORAL WARRIOR'
  4988. TT 'CB5. CFOGRE WARRIOR'
  4989. TT 'CB6. CFDWARF WARRIOR'
  4990. TT 'CB7. CFGNOME OR HALFLING WARRIOR'
  4991. TT 'CB8. CFWHITE ELF WARRIOR'
  4992. TT 'CB9. CFLITHE & BLOND WARRIOR'
  4993. QUERY 'N1CEWHICH FILE WILL YOU VIEW OR PICK?C9 [RETURN = QUIT] '
  4994. YYY=UPPER(RESULT)
  4995. IF YYY=p THEN SIGNAL QUIT
  4996. IF YYY='Q' THEN SIGNAL SELECTAPIC
  4997. IF YYY='' THEN SIGNAL SELECTAPIC
  4998. IF YYY='1' THEN DO;WAP=YES;YYY=GUIDE;SIGNAL PICSEE;END
  4999. IF YYY='2' THEN DO;WAP=YES;YYY=ANTIPAL;SIGNAL PICSEE;END
  5000. IF YYY='3' THEN DO;WAP=YES;YYY=HUMWARRIOR;SIGNAL PICSEE;END
  5001. IF YYY='4' THEN DO;WAP=YES;YYY=HUMWARRIORE;SIGNAL PICSEE;END
  5002. IF YYY='5' THEN DO;WAP=YES;YYY=OGREWARRIOR;SIGNAL PICSEE;END
  5003. IF YYY='6' THEN DO;WAP=YES;YYY=DDWARRIORE;SIGNAL PICSEE;END
  5004. IF YYY='7' THEN DO;WAP=YES;YYY=HALFDEMISTOUTWARRIOR; SIGNAL PICSEE;END
  5005. IF YYY='8' THEN DO;WAP=YES;YYY=WHITEWARRIOR; SIGNAL PICSEE;END
  5006. IF YYY='9' THEN DO;WAP=YES;YYY=ELFWARRIOR; SIGNAL PICSEE;END
  5007. IF YYY='P1' THEN DO;ST.128=GUIDE;MAIN=YES;SIGNAL MAIN;END
  5008. IF YYY='P2' THEN DO;ST.128=ANTIPAL;MAIN=YES;SIGNAL MAIN;END
  5009. IF YYY='P3' THEN DO;ST.128=HUMWARRIOR;MAIN=YES;SIGNAL MAIN;END
  5010. IF YYY='P4' THEN DO;ST.128=HUMWARRIORE;MAIN=YES;SIGNAL MAIN;END
  5011. IF YYY='P5' THEN DO;ST.128=OGREWARRIOR;MAIN=YES;SIGNAL MAIN;END
  5012. IF YYY='P6' THEN DO;ST.128=DDWARRIORE;MAIN=YES;SIGNAL MAIN;END
  5013. IF YYY='P7' THEN DO;ST.128=HALFDEMISTOUTWARRIOR;MAIN=YES;SIGNAL MAIN;END
  5014. IF YYY='P8' THEN DO;ST.128=WHITEWARRIOR;MAIN=YES;SIGNAL MAIN;END
  5015. IF YYY='P9' THEN DO;ST.128=ELFWARRIOR;MAIN=YES;SIGNAL MAIN;END
  5016. TT 'N1CAMAKE SURE YOU PLACE THE LETTER C9VCA ORC9 PCA BEFORE THE NUMBER YOU CHOOSE!W2'
  5017. SIGNAL WARP
  5018.  
  5019. ROXP:
  5020. ROP=NO
  5021. TT 'F1N1CAHERE IS A LIST OF THE AVAILABLE PRIEST PICTURES.'
  5022. TT 'SELECT THE C9# CAOF THE PICTURE YOU WISH TO VIEW'
  5023. TT 'OR C9P CAFOLLOWED BY THE NUMBER YOU WISH TO PICK AS'
  5024. TT 'YOUR CHARACTER PICTURE.'
  5025. TT 'N1CB1. CFNINJA'
  5026. TT 'CB2. CFHALFLING & GNOME ROGUE'
  5027. TT 'CB3. CFBLOND ELF ROGUE'
  5028. TT 'CB4. CFOGRE ROGUE'
  5029. TT 'CB5. CFDWARF NINJA'
  5030. TT 'CB6. CFDWARF ROGUE'
  5031. QUERY 'N1CEWHICH FILE WILL YOU VIEW OR PICK?C9 [RETURN = QUIT] '
  5032. YYY=UPPER(RESULT)
  5033. IF YYY=p THEN SIGNAL QUIT
  5034. IF YYY='Q' THEN SIGNAL SELECTAPIC
  5035. IF YYY='' THEN SIGNAL SELECTAPIC
  5036. IF YYY='1' THEN DO;ROP=YES;YYY=NINJA;SIGNAL PICSEE;END
  5037. IF YYY='2' THEN DO;ROP=YES;YYY=HALFDEMISTOUTROGUE;SIGNAL PICSEE;END
  5038. IF YYY='3' THEN DO;ROP=YES;YYY=BLONDROGUE;SIGNAL PICSEE;END
  5039. IF YYY='4' THEN DO;ROP=YES;YYY=OGRETHIEF;SIGNAL PICSEE;END
  5040. IF YYY='5' THEN DO;ROP=YES;YYY=DWARFNINJA;SIGNAL PICSEE;END
  5041. IF YYY='6' THEN DO;ROP=YES;YYY=DWARFROGUE;SIGNAL PICSEE;END
  5042. IF YYY='P1' THEN DO;ST.128=NINJA;MAIN=YES;SIGNAL MAIN;END
  5043. IF YYY='P2' THEN DO;ST.128=HALFDEMIHALFLINGROGUE;MAIN=YES;SIGNAL MAIN;END
  5044. IF YYY='P3' THEN DO;ST.128=BLONDROGUE;MAIN=YES;SIGNAL MAIN;END
  5045. IF YYY='P4' THEN DO;ST.128=OGRETHIEF;MAIN=YES;SIGNAL MAIN;END
  5046. IF YYY='P5' THEN DO;ST.128=DWARFNINJA;MAIN=YES;SIGNAL MAIN;END
  5047. IF YYY='P6' THEN DO;ST.128=DWARFROGUE;MAIN=YES;SIGNAL MAIN;END
  5048. TT 'N1CAMAKE SURE YOU PLACE THE LETTER C9VCA ORC9 PCA BEFORE THE NUMBER YOU CHOOSE!W2'
  5049. SIGNAL ROXP
  5050.  
  5051. PICSEE:
  5052. CALL OPEN(1,SPATH||YYY,'R')
  5053. DO I=1 TO 23
  5054.  PIC1.I=READLN(1)
  5055. END
  5056. CALL CLOSE(1)
  5057. TT 'A'PIC1.1
  5058. TT ''PIC1.2 
  5059. TT ''PIC1.3 
  5060. TT ''PIC1.4 
  5061. TT ''PIC1.5 
  5062. TT ''PIC1.6 
  5063. TT ''PIC1.7 
  5064. TT ''PIC1.8 
  5065. TT ''PIC1.9 
  5066. TT ''PIC1.10
  5067. TT ''PIC1.11
  5068. TT ''PIC1.12
  5069. TT ''PIC1.13
  5070. TT ''PIC1.14
  5071. TT ''PIC1.15
  5072. TT ''PIC1.16
  5073. TT ''PIC1.17
  5074. TT ''PIC1.18
  5075. TT ''PIC1.19
  5076. TT ''PIC1.20
  5077. TT ''PIC1.21
  5078. TT ''PIC1.22 '          CAHIT A KEY TO MOVE ALONG...G1F1'
  5079. IF WXP=YES THEN SIGNAL WIXP
  5080. IF WAP=YES THEN SIGNAL WARP
  5081. IF ROP=YES THEN SIGNAL ROXP
  5082. IF PRP=YES THEN SIGNAL PIXP
  5083. IF FXP=YES THEN SIGNAL FIXP
  5084.  
  5085. LOADSAVED:
  5086. TT 'F1N1CALOADING YOUR CHARACTER AND POSITION...'
  5087. CALL OPEN(1,UPATH||NAME,'R')
  5088. DO I=1 TO 170
  5089.  ST.I=READLN(1)
  5090. END
  5091. CALL CLOSE(1)
  5092. IF ST.150=NO THEN DO;ST.150=NDAY;ST.164=1;END
  5093. IF ST.73=0 | ST.72=0 | ST.71=0 THEN DO;TT 'N3C9WARNING:N2CBSOMETHING HAS HAPPENED TO YOU! YOU EITHER DROPPED CARRIER DURINGN1CHARACTER CREATION OR DID NOT COMPLETE GENERATION!N1YOUR CHARACTER IS UNREADABLE TO ME SO I MUST START YOU OVER!G1';SIGNAL CUTUP;END
  5094. ST.164=ST.164+1
  5095. IF ST.164>MAXTURN & ST.150=DAYN THEN DO;TT 'F1N1CBYOU CAN ONLY PLAY EARTH LORDS C9'MAXTURN 'CBTIMES A DAY!W2';EXIT;END 
  5096. IF ST.150~=DAYN THEN ST.164=1
  5097. CALL OPEN(1,BAKPATH||NAME,'R')
  5098.  DO I=1 TO 10
  5099.  ITEM.I=READLN(1)
  5100.  AMOUNT.I=READLN(1)
  5101.  WEIGHT.I=READLN(1)
  5102.  VALUE.I=READLN(1)
  5103. END
  5104. CALL CLOSE(1)
  5105. IF EXISTS(BPATH||NAME) THEN DO;CALL OPEN(1,BPATH||NAME,'R');DO I=1 TO 45;SPNAME.I=READLN(1);SPTOTAL.I=READLN(1);SPAMOUNT.I=READLN(1);END;CALL CLOSE(1);END
  5106. IF ST.26<1 THEN SIGNAL YIKES
  5107. SIGNAL SHUFFLE
  5108.  
  5109. YIKES:
  5110. TT 'F1'
  5111. SFI SPATH||'GODDO'
  5112. TT 'G1'
  5113. ST.26=1
  5114. SIGNAL SHUFFLE
  5115.  
  5116. STATBONUS:
  5117. IF ST.7<8 THEN DO;ST.8=-2;ST.9=-3;ST.10=1;ST.11=50;END
  5118. IF ST.7>7 & ST.7<11 THEN DO;ST.8=-1;ST.9=-2;ST.10=2;ST.11=55;END
  5119. IF ST.7>10 & ST.7<15 THEN DO;ST.8=0;ST.9=0;ST.10=3;ST.11=60;END
  5120. IF ST.7=15 THEN DO;ST.9=+1;ST.10=5;ST.11=70;END
  5121. IF ST.7=16 THEN DO;ST.8=+1;ST.9=+2;ST.10=6;ST.11=80;END
  5122. IF ST.7=17 THEN DO;ST.8=+2;ST.9=+3;ST.10=8;ST.11=90;END
  5123. IF ST.7=18 THEN DO;ST.8=+2;ST.9=+5;ST.10=10;ST.11=110;END
  5124. IF ST.7=19 THEN DO;ST.8=+3;ST.9=+7;ST.10=12;ST.11=130;END
  5125. IF ST.7=20 THEN DO;ST.8=+3;ST.9=+9;ST.10=14;ST.11=150;END
  5126. IF ST.12<15 THEN DO;ST.13=0;END
  5127. IF ST.12=15 THEN DO;ST.13=1;END
  5128. IF ST.12=16 THEN DO;ST.13=2;END
  5129. IF ST.12=17 THEN DO;ST.13=2;END
  5130. IF ST.12=18 THEN DO;ST.13=3;END
  5131. IF ST.12=19 THEN DO;ST.13=3;END
  5132. IF ST.12=20 THEN DO;ST.13=4;END
  5133. IF ST.14<8 THEN DO;ST.15=-2;ST.16=4;ST.17=-2;ST.51=-5;ST.53=-5;ST.55=-10;END
  5134. IF ST.14>7 & ST.14<11 THEN DO;ST.15=-1;ST.16=5;ST.17=-1;END
  5135. IF ST.14>10 & ST.14<16 THEN DO;ST.15=0;ST.16=6;ST.17=0;END
  5136. IF ST.14=16 THEN DO;ST.15=1;ST.16=7;ST.17=1;ST.51=0;ST.53=5;ST.55=0;END
  5137. IF ST.14=17 THEN DO;ST.15=2;ST.16=8;ST.17=2;ST.51=5;ST.53=5;ST.55=5;END
  5138. IF ST.14=18 THEN DO;ST.15=3;ST.16=9;ST.17=3;ST.51=5;ST.53=10;ST.55=5;ST.58=5;END
  5139. IF ST.14=19 THEN DO;ST.15=4;ST.16=10;ST.17=4;ST.51=10;ST.53=10;ST.55=10;ST.58=5;END
  5140. IF ST.14=20 THEN DO;ST.15=5;ST.16=11;ST.17=5;ST.51=15;ST.53=15;ST.55=10;ST.58=10;END
  5141. IF ST.18<8 THEN DO;ST.18=-2;ST.20=-1;END
  5142. IF ST.18>7 & ST.18<11 THEN DO;ST.19=-1;ST.20=0;END
  5143. IF ST.18>10 & ST.18<16 THEN DO;ST.19=0;ST.20=0;END
  5144. IF ST.18=16 THEN DO;ST.19=1;ST.20=1;END
  5145. IF ST.18=17 THEN DO;ST.19=2;ST.20=1;END
  5146. IF ST.18=18 THEN DO;ST.19=3;ST.20=2;END
  5147. IF ST.18=19 THEN DO;ST.19=4;ST.20=2;END
  5148. IF ST.18=20 THEN DO;ST.19=5;ST.20=3;END
  5149. IF ST.18<8 THEN DO;ST.18=-2;ST.20=-1;END
  5150. IF ST.21>7 & ST.21<11 THEN DO;ST.22=-1;ST.23=-1;END
  5151. IF ST.21>10 & ST.21<15 THEN DO;ST.22=0;ST.23=0;END
  5152. IF ST.21=15 THEN DO;ST.22=1;ST.23=0;END
  5153. IF ST.21=16 THEN DO;ST.22=2;ST.23=1;END
  5154. IF ST.21=17 THEN DO;ST.22=3;ST.23=1;END
  5155. IF ST.21=18 THEN DO;ST.22=4;ST.23=2;END
  5156. IF ST.21=19 THEN DO;ST.22=5;ST.23=2;END
  5157. IF ST.21=20 THEN DO;ST.22=6;ST.23=3;END
  5158. IF ST.24<15 THEN DO;ST.25=150;END
  5159. IF ST.24=15 THEN DO;ST.25=250;END
  5160. IF ST.24=16 THEN DO;ST.25=300;END
  5161. IF ST.24=17 THEN DO;ST.25=450;END
  5162. IF ST.24=18 THEN DO;ST.25=700;END
  5163. IF ST.24=19 THEN DO;ST.25=1000;END
  5164. IF ST.24=20 THEN DO;ST.25=2000;END
  5165. ST.30=10
  5166. ST.31=SKIN
  5167. ST.32=ST.30-ST.15
  5168. ST.33=FIST
  5169. ST.34=NONE
  5170. ST.35=NONE
  5171. ST.36=1
  5172. ST.37=4
  5173. ST.38=NONE
  5174. ST.39=NONE
  5175. ST.40=NONE
  5176. ST.41=0
  5177. ST.42=0
  5178. ST.43=0
  5179. ST.170=VRND(50,200)+150
  5180. IF ST.2=DWARF THEN ST.73=VRND(1,12)+48
  5181. IF ST.2=DWARF THEN ST.74=VRND(10,40)+110
  5182. IF ST.2=DWARF THEN ST.75=BLACK
  5183. IF ST.2=BLOND ELF THEN ST.73=VRND(1,12)+60
  5184. IF ST.2=BLOND ELF THEN ST.74=VRND(10,40)+110
  5185. IF ST.2=BLOND ELF THEN ST.75=BLONDE
  5186. IF ST.2=GNOME THEN ST.73=VRND(1,12)+48
  5187. IF ST.2=GNOME THEN ST.74=VRND(10,40)+100
  5188. IF ST.2=GNOME THEN ST.75=BROWN
  5189. IF ST.2=OGRE THEN ST.73=VRND(1,12)+72
  5190. IF ST.2=OGRE THEN ST.74=VRND(30,70)+160
  5191. IF ST.2=OGRE THEN ST.75=WHITE
  5192. IF ST.2=LITHE ELF THEN ST.73=VRND(1,12)+54
  5193. IF ST.2=LITHE ELF THEN ST.74=VRND(10,40)+80
  5194. IF ST.2=LITHE ELF THEN ST.75=WHITE
  5195. IF ST.2=HUMAN THEN ST.73=VRND(1,10)+70
  5196. IF ST.2=HUMAN THEN ST.74=VRND(20,90)+130
  5197. IF ST.2=HUMAN THEN ST.75=VRND(1,3)
  5198. IF ST.2=WHITE ELF THEN ST.73=VRND(1,12)+48
  5199. IF ST.2=WHITE ELF THEN ST.74=VRND(10,40)+65
  5200. IF ST.2=WHITE ELF THEN ST.75=GREY
  5201. IF ST.2=HALFLING THEN ST.73=VRND(1,12)+36
  5202. IF ST.2=HALFLING THEN ST.74=VRND(10,40)+100
  5203. IF ST.2=DWARF THEN ST.75=BROWN
  5204. IF ST.75=1 THEN ST.75=BLONDE
  5205. IF ST.75=2 THEN ST.75=BLACK
  5206. IF ST.75=3 THEN ST.75=BROWN
  5207. SIGNAL CLASS
  5208.  
  5209. BANNED:
  5210. TT 'N1CASORRY, BUT ACF' ST.2 'CACANNOT BE THAT CLASS...W2'
  5211. SIGNAL CLASS1
  5212.  
  5213. REROLL:
  5214. TT 'F1'
  5215. SFI DPATH||'REROLL'
  5216. ST.26=1
  5217. DO;MAIN=YES;SIGNAL MAIN;END
  5218.  
  5219. SAVESTATS:
  5220. ST.150=NDAY
  5221. CALL OPEN(1,UPATH||NAME,'W')
  5222. DO I=1 TO 170
  5223.  CALL WRITELN(1,ST.I)
  5224. END
  5225. CALL CLOSE(1)
  5226. CALL OPEN(1,BAKPATH||NAME,'W')
  5227. DO I=1 TO 10
  5228.  CALL WRITELN(1,ITEM.I)
  5229.  CALL WRITELN(1,AMOUNT.I)
  5230.  CALL WRITELN(1,WEIGHT.I)
  5231.  CALL WRITELN(1,VALUE.I)
  5232. END
  5233. CALL CLOSE(1)
  5234. IF START=YES THEN SIGNAL SHUFFLE
  5235. IF DOODLE=YES THEN DO;DOODLE=NO;SIGNAL XMOVE;END
  5236.  
  5237. ERROR:
  5238. SYNTAX:
  5239. CALL CLOSE(1)
  5240. CALL CLOSE(2)
  5241. CALL CLOSE(3)
  5242. TT 'CBTHERE WAS AN ERROR FOUND AT LINE 'SIGL' IN CEEARTH LORDSCB'
  5243. TT 'CA'SOURCELINE(SIGL)
  5244. ERR1='LINE' SIGL 
  5245. ERR2=''SOURCELINE(SIGL)
  5246. LOCO='MAP'MAP 'X'X 'Y' 'LOC' LOC
  5247. EL='W'
  5248. IF EXISTS(ERRORPATH||'ERRORLOG')=1 THEN EL='A'
  5249. CALL OPEN(1,ERRORPATH||'ERRORLOG',EL)
  5250. CALL WRITELN(1,ERR1)
  5251. CALL WRITELN(1,ERR2)
  5252. CALL WRITELN(1,LOCO)
  5253. CALL CLOSE(1)
  5254. EXIT
  5255.  
  5256. QUIT1:
  5257. ST.162=0
  5258. IF BZZ~=MAIN THEN SX 'ACEDO YOU WANT ME TO SAVE YOUR STATS & LOCATION? '
  5259. IF BZZ=MAIN THEN SX 'F0BCEDO YOU WANT ME TO SAVE YOUR STATS & LOCATION? '
  5260. GETCHAR
  5261. SAVE=UPPER(RESULT)
  5262. IF SAVE=p THEN SIGNAL QUIT
  5263. IF SAVE='Y' THEN SIGNAL QUIT
  5264. IF SAVE='N' THEN DO;TT 'F1';EXIT;END
  5265. SIGNAL QUIT1
  5266.  
  5267. QUIT:
  5268. TT 'F1N4CELET ME SAVE THOSE STATS AND LOCATION FOR YA...'
  5269. ST.150=NDAY
  5270. CALL OPEN(1,UPATH||NAME,'W')
  5271. DO I=1 TO 170
  5272.  CALL WRITELN(1,ST.I)
  5273. END
  5274. CALL CLOSE(1)
  5275. CALL OPEN(1,BAKPATH||NAME,'W')
  5276. DO I=1 TO 10
  5277.  CALL WRITELN(1,ITEM.I)
  5278.  CALL WRITELN(1,AMOUNT.I)
  5279.  CALL WRITELN(1,WEIGHT.I)
  5280.  CALL WRITELN(1,VALUE.I)
  5281. END
  5282. CALL CLOSE(1)
  5283. IF EXISTS(BPATH||NAME) THEN DO;CALL OPEN(1,BPATH||NAME,'W');DO I=1 TO 45;CALL WRITELN(1,SPNAME.I);CALL WRITELN(1,SPTOTAL.I);CALL WRITELN(1,SPAMOUNT.I);END;CALL CLOSE(1);END
  5284. TT 'C9DONE!'
  5285. EXIT
  5286.  
  5287. CUTUP:
  5288. ADDRESS COMMAND 'DELETE "'UPATH''NAME'"'
  5289. CALL OPEN(2,UPATH||'LORDS','R')
  5290. XX=1
  5291. DO UNTIL EOF(2)=1
  5292.  LEADER.XX=READLN(2)
  5293.  PLAYER.XX=READLN(2)
  5294.  IF LEADER.XX=' ' THEN ITERATE
  5295.  XX=XX+1
  5296. END 
  5297. CALL CLOSE(2)
  5298. XX=XX-1
  5299. CALL OPEN(2,UPATH||'LORDS','W')
  5300. DO I=1 TO XX
  5301.  IF EXISTS(UPATH||PLAYER.I)=0 THEN ITERATE I
  5302.  CALL WRITELN(2,LEADER.I)
  5303.  CALL WRITELN(2,PLAYER.I)
  5304. END
  5305. CALL CLOSE(2)
  5306. SIGNAL BEGIN
  5307.  
  5308. VRND: PROCEDURE   /*  VERY RANDOM V1.1  [C] 1990 SHANE D. KILLIAN  */
  5309.    ARG LO,HI      /*    FEEL FREE TO USE THIS AS LONG AS THESE     */
  5310.    N1 = TIME('E') /* COMMENTS REMAIN INTACT.  WORKS LIKE RANDOM(). */
  5311.    N2 = TIME('S')
  5312.    PARSE VAR N1 N11 '.' N12
  5313.    N1 = N11 || N12
  5314.    IF LO > HI THEN DO
  5315.       X = LO
  5316.       LO = HI
  5317.       HI = X
  5318.    END
  5319.    IF HI ~= LO THEN DO
  5320.       D = HI - LO + 1
  5321.       X = LENGTH(D)
  5322.       N1 = RIGHT(N1,X)
  5323.       N2 = RIGHT(N2,X)
  5324.       P = D
  5325.       IF P > 999 THEN P = 999
  5326.       R = N1 + N2 + RANDOM(0,P)
  5327.       R = R // D + LO
  5328.    END
  5329.    ELSE R = HI
  5330. RETURN R
  5331.